最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP類中Static方法效率測試代碼

 更新時間:2010年10月17日 14:48:10   作者:  
因為有好幾個項目等著做,又不是很急,再加上目前成型的那些框架多多少少用著總是有點不太如意,所以決定先自己寫一個框架,然后再做項目。既然寫框架,自然要經(jīng)常做一些執(zhí)行效率上的測試,今天做了一個static效率的測試。
類的定義如下:
復制代碼 代碼如下:

class test
{
public static function a(){}
public function b(){}
}
$obj = new test;

比較以下幾種情況
test::a();
$obj->a();
$obj->b();
測試代碼:
復制代碼 代碼如下:

$obj = new test;
$test_times = 100;
$times = 10000;
$effi1 = array();
$effi2 = array();

while ($test_times-- > 0)
{
$time1 = microtime(true);
for($i=0; $i<$times; $i++)
{
test::a();
}
$time2 = microtime(true);
for($i=0; $i<$times; $i++)
{
$obj->a();
}
$time3 = microtime(true);
for($i=0; $i<$times; $i++)
{
$obj->b();
}
$time4 = microtime(true);
$effi1[] = ($time3 - $time2) / ($time2 - $time1);
$effi2[] = ($time4 - $time3) / ($time3 - $time2);
}
echo avg($effi1),"\n",avg($effi2);

最后的avg是自定義的計算平均數(shù)的一個函數(shù):
復制代碼 代碼如下:

function avg($arr)
{
$result = 0;
foreach ($arr as $val)
{
$result += $val;
}
$result /= count($arr);
return $result;
}

程序輸出結(jié)果:
復制代碼 代碼如下:

PHP 5.2.14
view sourceprint?1 0.76490628848091
2 1.0699484376399
view sourceprint?1 PHP 5.3
view sourceprint?1 0.56919482299058<BR>1.1016495598611

重復執(zhí)行N(N>10)次,都與這個結(jié)果相差不大,說明:
1、直接通過類名訪問靜態(tài)方法的效率是通過實例訪問靜態(tài)方法的76%,甚至用PHP5.3時只有56%
2、通過實例訪問靜態(tài)方法的效率是訪問非靜態(tài)成員方法效率的106,在5.3版本變成110%
3、假設PHP從5.2升級到5.3時通過類名訪問靜態(tài)方法的效率沒有降低,那么通過實例訪問函數(shù)的效率至少提高了35%。我沒看過PHP源碼,有研究過PHP源碼的朋友希望能告訴我這個假設是否成立 (我想應該是成立的)
說明:以上測試基于windows 7和php.exe,5.2.14使用了apache2.2測試結(jié)果沒有區(qū)別,考慮到php.exe和通過web訪問所執(zhí)行的PHP核心是一樣的,所以5.3懶得改服務器配置了,結(jié)果應該一樣。

相關(guān)文章

最新評論

翼城县| 尤溪县| 德惠市| 黄山市| 平原县| 兴和县| 台北县| 五指山市| 北海市| 阜新市| 息烽县| 太仓市| 白朗县| 磐石市| 禹州市| 通州区| 怀来县| 上思县| 陵水| 响水县| 中牟县| 天柱县| 秦安县| 香港| 沾益县| 泾阳县| 吉安市| 合山市| 全南县| 商都县| 铜梁县| 沁水县| 普格县| 文成县| 巴林左旗| 烟台市| 两当县| 嘉鱼县| 台南市| 德清县| 衡南县|