ホームページ  >  記事  >  バックエンド開発  >  PHPとPerl動作の速度差の比較 Memcached_PHPチュートリアル

PHPとPerl動作の速度差の比較 Memcached_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:35:131064ブラウズ

memcached の最近の作業のため

パフォーマンステストでは、phpとperlを使用してmemcachedを動作させた結果、memcachedの動作におけるphpとperlのパフォーマンスの差は約40~50%であることがわかりました。

以下はテストスクリプトです。操作は同じです。1kのデータを使用して512,000回繰り返し、合計500Mのmemcachedデータが挿入されます。

php操作スクリプト

ini_set("memcache.hash_function","crc32");

$memcache=newMemcache;
$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

Cache::Memcached();

$memcache=newCache::Memcached{servers=>["localhost:30001"]};
$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

user 0m36.427s

sys 0m17.114s
[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% 高速です

分析後、考えられる要因がいくつかあります

1. Perl の文字列処理速度は遅いため、Perl バージョンでは長さパラメータを追加する必要がないことが分かります。しかし、その後、PHP のセットには長さのパラメーターがありますが、このパラメーターは必須ではないことがわかりました。たとえば、パラメーターとして 1000 を記述した場合、実際の文字列は 1200 になります。結果は切り捨てられずに挿入される長さ 1200 の文字列になります。ということで、これはあまり支持できません

2. Perl 拡張機能は PHP 拡張機能とは異なる方法で実装されます。PHP の memcache クライアントは C 拡張機能である PECL であり、Perl の拡張機能の実装は Perl である可能性があります。

http://www.bkjia.com/PHPjc/508338.html

www.bkjia.com本当http://www.bkjia.com/PHPjc/508338.html技術記事最近 memcached に取り組んだため、パフォーマンス テストで php と perl を使用して memcached を操作したところ、memcached の操作における php と perl のパフォーマンスの差は約 40 ~ 50% であることがわかりました...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。