在对个人宠物项目进行一些分析之后,我正在玩一些愚蠢的微观优化.它在很大程度上是一个实验,所以我正在调整的东西实际上并不需要调整.尽管如此,这仍然是一项有趣的练习.
无论如何,我在OS X上通过Macports安装PHP 5.3和从apt安装Ubuntu时遇到了奇怪的性能差异.
似乎以下代码显示了OS X上两个不同版本之间的巨大速度差异,但在Ubuntu上只有极小的速度差异.
<code>$x = array(9);
// As per BarsMonster's comment, this ensures it runs for more
// than a second in order to avoid possible kernel scheduler differences
$count = 10000000;
$s = microtime(true);
for ($i=0;$i<$count;$i++) {
$q = is_string($x);
}
var_dump(microtime(true)-$s);
$s = microtime(true);
for ($i=0;$i<$count;$i++) {
// This is obviously only useful if you'll never need a string
// with 'Array' in it here
$q = (string)$x!='Array';
}
var_dump(microtime(true)-$s);
</code>
在OS X上运行时的输出:
<code>float(17.977133989334) float(4.2555270195007) </code>
在Ubuntu上运行时的输出:
<code>float(5.2112979888916) float(3.4337821006775) </code>
看到被黑客攻击的版本的数字非常相似并不令我感到惊讶,但是is_string方法却截然不同.
我可以将此归因于什么?如果从简单类型测试功能的安装到安装的性能变化很大,我如何使用与我的目标部署平台不匹配的操作系统信任分析结果?
在Ubuntu和OS X上打开或关闭APC的时间没有区别.
解决方法:
Ubuntu安装与OS X安装在同一台PC上?
它可能与zts有关.
尝试使用两个系统上的相同标志自行配置它.
默认情况下,在ubuntu上可能启用了选项,默认情况下在Ports中禁用这些选项.
我不确切知道哪个,但你的phpinfo()会告诉我.如果没有(也许phpinfo没有显示,也许它只是显示一个空白页;那么你的系统之一可能正在编译Susoshin补丁(或其他).
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!