Created
January 29, 2011 10:08
-
-
Save chobie/801723 to your computer and use it in GitHub Desktop.
KyotoTycoon PHP Bindingののパフォーマンスチェック
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
KyotoTycoon PHP Bindingののパフォーマンスチェック | |
**/ | |
$count = 1000; | |
////////////////////////////////////////////////////////////////////////////////////////////////// | |
printf("[Kyoto\\Tycoon\\HttpClientのテスト]\n"); | |
$client = new Kyoto\Tycoon\HttpClient(); | |
$client->open("localhost",1978); | |
$start = microtime_float(); | |
$client->fetch("/rpc/set?key=japan&value=tokyo"); | |
$memory = memory_get_usage(); | |
for($i=0;$i<$count;$i++){ | |
$client->fetch("/rpc/get?key=japan"); | |
} | |
$end = microtime_float(); | |
$memory2 = memory_get_usage(); | |
echo "実行回数: {$count}回\n"; | |
echo "処理時間:" . ($end - $start) ."msec" .PHP_EOL; | |
printf("コール前[%dKb]\nコール後[%dKb]\n差分[%dbytes]\n",$memory/1024,$memory2/1024,$memory2-$memory); | |
$client->close(); | |
printf("\n"); | |
////////////////////////////////////////////////////////////////////////////////////////////////// | |
printf("[Kyoto\\Tycoon\\RPCClientのテスト]\n"); | |
$client = new Kyoto\Tycoon\RPCClient(); | |
$client->open("localhost",1978); | |
$start = microtime_float(); | |
$memory = memory_get_usage(); | |
$query = array("key"=>"japan"); | |
for($i=0;$i<$count;$i++){ | |
$client->call("get",$query); | |
} | |
$end = microtime_float(true); | |
$memory2 = memory_get_usage(); | |
echo "実行回数: {$count}回\n"; | |
echo "処理時間:" . ($end - $start) ."msec" .PHP_EOL; | |
printf("コール前[%dKb]\nコール後[%dKb]\n差分[%dbytes]\n",$memory/1024,$memory2/1024,$memory2-$memory); | |
$client->close(); | |
printf("\n"); | |
////////////////////////////////////////////////////////////////////////////////////////////////// | |
require_once 'Net/KyotoTycoon.php'; | |
printf("[Net\\KyotoTycoonのテスト]\n"); | |
$kt = new \Net\KyotoTycoon(array('port' => 1978)); | |
$start = microtime_float(); | |
$memory = memory_get_usage(); | |
for($i=0;$i<$count;$i++){ | |
$kt->get('japan'); | |
} | |
$end = microtime_float(); | |
$memory2 = memory_get_usage(); | |
echo "実行回数: {$count}回\n"; | |
echo "処理時間:" . ($end - $start) ."msec" .PHP_EOL; | |
printf("コール前[%dKb]\nコール後[%dKb]\n差分[%dbytes]\n",$memory/1024,$memory2/1024,$memory2-$memory); | |
function microtime_float() | |
{ | |
list($usec, $sec) = explode(" ", microtime()); | |
return ((float)$usec + (float)$sec); | |
} | |
/** | |
うちのmacbook airでのテスト | |
[Kyoto\Tycoon\HttpClientのテスト] | |
実行回数: 1000回 | |
処理時間:0.81925392150879msec | |
コール前[344Kb] | |
コール後[344Kb] | |
差分[328bytes] | |
[Kyoto\Tycoon\RPCClientのテスト] | |
実行回数: 1000回 | |
処理時間:0.28819894790649msec | |
コール前[344Kb] | |
コール後[603Kb] | |
差分[264376bytes] | |
[Net\KyotoTycoonのテスト] | |
実行回数: 1000回 | |
処理時間:42.153828144073msec | |
コール前[1200Kb] | |
コール後[1627Kb] | |
差分[437484bytes] | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment