色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

PHP類(lèi)中Static方法效率測(cè)試代碼

類(lèi)的定義如下:
復(fù)制代碼 代碼如下:
class test
{
public static function a(){}
public function b(){}
}
$obj = new test;

比較以下幾種情況
test::a();
$obj->a();
$obj->b();
測(cè)試代碼:
復(fù)制代碼 代碼如下:
$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是自定義的計(jì)算平均數(shù)的一個(gè)函數(shù):
復(fù)制代碼 代碼如下:
function avg($arr)
{
$result = 0;
foreach ($arr as $val)
{
$result += $val;
}
$result /= count($arr);
return $result;
}

程序輸出結(jié)果:
復(fù)制代碼 代碼如下:
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

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

php技術(shù)PHP類(lèi)中Static方法效率測(cè)試代碼,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 济南市| 梁平县| 宁安市| 增城市| 台安县| 本溪市| 曲水县| 阜宁县| 松阳县| 仁布县| 涟水县| 岐山县| 广东省| 太仆寺旗| 渭南市| 原阳县| 望谟县| 通化县| 鄂州市| 大化| 襄樊市| 彭州市| 扬州市| 定襄县| 镇坪县| 凌源市| 黄骅市| 河北省| 台湾省| 施甸县| 沾益县| 谷城县| 康马县| 平湖市| 吉木乃县| 望谟县| 长葛市| 延庆县| 封开县| 涪陵区| 繁峙县|