我微调优化了这个函数,并且在循环内部有点问题我在检查循环外部的值是否为0,如果是这样的话调用函数并且类似地调用函数。我将如何重构它,所以在这些循环中没有条件逻辑(这很慢)。循环中的PHP优化函数
foreach($this->layer[$l]->objs as $obj)
{
//Horrific code to save 20ms :(
($l===0) ? $obj->myfunc_clean($var,$var2) : $obj->myfunc($var,$var2);
}
我需要摆脱的条件$l===0
因为数千对象的循环这个条件大大减缓下来。另外,我有需要正常处理的函数,但另一个需要在完成时取消设置临时变量(基于l为0)。 myfunc
函数也有一个遍历更多对象的循环,因此为什么我不得不调用单独的函数来保存更多的条件逻辑。
注意:这可能看起来像不成熟的优化,但相信我,对我的应用程序来说,节省一毫秒可以节省宝贵的秒数(如果不是更多,可能需要大约10,000次迭代)。所以请不要提供关于过早优化的答案是万恶之源的根源。这当然不是不成熟的。
虽然我发现它没有意义优化这个,但http://www.phpbench.com可能会给你一些其他的想法。 – Gordon 2010-02-09 12:02:54