memcached の最近の作業のため パフォーマンステストでは、phpとperlを使用してmemcachedを動作させた結果、memcachedの動作におけるphpとperlのパフォーマンスの差は約40~50%であることがわかりました。
php操作スクリプト ini_set("memcache.hash_function","crc32"); $memcache=newMemcache; $memcache=newCache::Memcached{servers=>["localhost:30001"]}; sys 0m17.114s
$memcache->addServer(localhost,30001);
$memcache->flush();
for ($i=0;$i<512000;$i++){
$memcache->set($i,
"Total 1k padding data",0,1000);
}
?>
次に perl スクリプト
#!/usr/bin/perl
$memcache->flush_all(); を使用します。
for($i=0;$i $memcache->set($i,
"合計 1k パディング データ");
}
$memcache->disconnect_all();コードの行数から判断すると、この 2 つはほぼ同じです
しかし、テスト結果は大きく異なります
Linux での実行時間を計測するために時間を使用します
3 回の実行結果は次のとおりです
[root@lenovo5 ~]# time ./test1k.pl
real 1m2.265s
[root@lenovo5 ~]# time ./test1k.pl
real 1m2.814s
user 0m36.380s
sys 0m17.463s
[root@lenovo5 ~]# time ./test1k.pl
real 1m13.684s
user 0m44.603s
sys 0m18.366s
[root@lenovo5 ~]# time php ./test1k .php
real 0m38.055s
user 0m11.768s
sys 0m13.891s
[root@lenovo5 ~]# time php ./test1k.php
real 0m38.892s
user 0m12.416s
sys 0m14.044s
[ルート@lenovo5 ~]# time php ./test1k.php
real 0m38.955s
user 0m12.430s
sys 0m13.088s
その違いは明らかですが、Perl の実行には 40 秒もかかりません。 php の実行は perl より約 40% 高速です
分析後、考えられる要因がいくつかあります