2
大家都知道PHP中的函數調用會嚴重影響性能。這個腳本證明了這個問題:PHP優化器減少函數調用
// Plain variable assignment.
$time = microtime(true);
$i = 100000;
while ($i--)
{
$x = 'a';
}
echo microtime(true) - $time."\n\n";
// 0.017973899841309
$time = microtime(true);
function f() { $a = "a"; return $a; }
$i = 100000;
while ($i--)
{
$x = f();
}
echo microtime(true) - $time."\n\n";
//0.18558096885681
順便提一下,匿名函數是最糟糕的。你的速度慢了10倍。
是否有PHP腳本優化器,可以減少函數調用的數量並縮小腳本?
還有這個帖子:Why are PHP function calls *so* expensive?與本文相關的
您的比較有點不公平,因爲您的函數調用大大多於添加函數調用。函數體應該是$ x ='a';返回;函數調用應該只是f();並且您的microtime開始調用應該在函數聲明之後發生,而不是之前。但是同意,函數調用時PHP很慢。事實上,由於它的實現,它在很多方面都很慢。爲什麼選擇函數調用? –
我測試了啓用APC的確切代碼,使用函數調用的速度只有2.5倍左右。 – Pitchinnate
所有你說的都叫做**過早優化** – Yang