Я микро-оптимизирую эту функцию и имею небольшую проблему, когда внутри цикла я проверяю, не превышает ли значение за пределами цикла 0, если это функция вызова и аналогично в функции, которую она вызывает , Как бы я реорганизовал его, чтобы в этих циклах не было условной логики (которая медленно).PHP Optimize Function in Loop
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