为什么php5.3.8比5.3.7慢10倍?
我刚刚使用dotdeb.org的apt源代码升级到PHP5.3.8 php性能的测试结果非常糟糕 我在安装php5.3.8之前和之后使用此脚本进行测试。在php5.3.8中运行相同代码的时间似乎是在php5.3.7中的10倍 测试php脚本:为什么php5.3.8比5.3.7慢10倍?,php,Php,我刚刚使用dotdeb.org的apt源代码升级到PHP5.3.8 php性能的测试结果非常糟糕 我在安装php5.3.8之前和之后使用此脚本进行测试。在php5.3.8中运行相同代码的时间似乎是在php5.3.7中的10倍 测试php脚本: <?php //test float function test_float() { $t = pi(); $timeStart = gettimeofday(); for($i = 0; $i < 3000000;
<?php
//test float
function test_float() {
$t = pi();
$timeStart = gettimeofday();
for($i = 0; $i < 3000000; $i++) {
sqrt($t);
}
$timeEnd = gettimeofday();
$time = ($timeEnd["usec"]-$timeStart["usec"])/1000000+$timeEnd["sec"]-$timeStart["sec"];
$time = round($time, 3)."s";
return $time;
}
echo "php version:" , phpversion(), "\n";
echo "call sqrt() 3,000,000 times will cost ", test_float(), "\n";
?>
5.3.8版本可能已使用调试选项进行编译,也可能未进行编译器优化 或者您可能在PHP5.3.8中添加了PHP5.3.7中未启用的一些慢速扩展,如xdebug或suhosin 我打赌是第二种解决方案
- 比较
的输出。(已加载模块的列表。)php-m
- 尝试使用
运行基准测试(运行php时不加载任何ini设置文件)php-n
- 比较
的输出。(已加载模块的列表。)php-m
- 尝试使用
运行基准测试(运行php时不加载任何ini设置文件)php-n
另外,请检查您在两个版本、同一台机器、同一php.ini等上编译php的方式是否相同。基准测试和性能分析应始终在实际代码上进行,即您试图优化性能的代码上进行 事实上,可能只有sqrt()函数速度较慢,99%的函数速度快了3倍。我认为问题来自你
另外,请检查您在两个版本、同一台机器、同一个php.ini等上编译php的方式是否相同。这并不重要,因为5.3.7中有一个。函数
crypt
仅返回salt
。因此,无论速度是慢是快,都不建议使用5.3.7,因为5.3.7中有一个。函数crypt
仅返回salt
。因此,无论速度是慢是快,都不建议使用5.3.7dotdeb版本是如何编译的?鉴于它来自完全不同的来源,你正在比较苹果和橙子。dotdeb版本是如何编译的?鉴于它来自完全不同的来源,你正在比较苹果和橙子。只有当你使用crypt
时才重要。信不信由你,不是每个应用程序都需要它;)只有在使用crypt
时才重要。信不信由你,不是每个应用程序都需要它;)谢谢阿诺。它确实是由xdebug引起的,当使用php-n运行时,PHP5.3.8的速度和以前一样快。似乎xdebug应该跟上新版本的php。谢谢arnaud。它确实是由xdebug引起的,当使用php-n运行时,PHP5.3.8的速度和以前一样快。xdebug似乎应该跟上新版本的php。
php version:5.3.3-7+squeeze3
call sqrt() 3,000,000 times will cost 1.369s
php version:5.3.3-7+squeeze3
call sqrt() 3,000,000 times will cost 1.095s
php version:5.3.3-7+squeeze3
call sqrt() 3,000,000 times will cost 1.072s
php version:5.3.8-1~dotdeb.2
call sqrt() 3,000,000 times will cost 10.644s
php version:5.3.8-1~dotdeb.2
call sqrt() 3,000,000 times will cost 10.567s
php version:5.3.8-1~dotdeb.2
call sqrt() 3,000,000 times will cost 10.343s