Skip to content

Instantly share code, notes, and snippets.

@chobie
Created January 29, 2011 10:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chobie/801723 to your computer and use it in GitHub Desktop.
Save chobie/801723 to your computer and use it in GitHub Desktop.
KyotoTycoon PHP Bindingののパフォーマンスチェック
<?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