首页 > 解决方案 > 当从 shell for loop 内部调用 php getmxrr() 时,性能会下降

问题描述

当尝试使用 php 和 shell 脚本获取 100000 次 gmail 的 MX 时,我注意到性能差异很大。

PHP 脚本大约需要 1.5 分钟。

<?php
$time = time();
for($i=1;$i<=100000;$i++)
{
    getmxrr('gmail.com', $hosts, $mxweights);
    unset($hosts, $mxweights);
}
$runtime = time() - $time;
echo "Time Taken : $runtime Sec.";
?>

但是在 shell for 循环中做同样的事情几乎慢了 10 倍

time for i in {1..100000}; do (php -r 'getmxrr("gmail.com", $mxhosts, $mxweight);');done

我很想知道,原因是什么,shell 脚本需要更多时间来完成与 php 脚本可以非常快地完成完全相同的事情。

标签: phpbashperformance-testing

解决方案


推荐阅读