나는이 함수를 마이크로 최적화했다. 루프 외부에서 값이 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
을 제거해야합니다. 또한 정상적으로 처리 할 필요가있는 함수가 있지만 다른 완료해야 할 때 temp 변수를 해제해야합니다 (l에 따라 0). myfunc
함수에는 아직 더 많은 객체에 대한 반복문이 있으므로 더 많은 조건부 논리를 저장하기 위해 별도의 함수를 호출해야합니다.
메모 : 이것은 조숙 한 최적화처럼 보일 수 있지만 내 응용 프로그램의 경우 1 밀리 초를 절약하면 소중한 시간을 절약 할 수 있습니다 (그 이상이 아닌 경우 약 10,000 회 반복). 너무 조숙 한 최적화에 대한 대답은 모든 악과 그 외의 루트입니다. 이것은 확실히 시기상조가 아닙니다.
내가 이것을 최적화하는 데 무의미하다고 생각하지만, http://www.phpbench.com은 몇 가지 다른 아이디어를 줄 수 있습니다. – Gordon