2015-01-09 7 views
-4

함수를 getCount($stage)으로 여러 번 호출해야합니다 (예 : $ stage는 0에서 14 사이의 값을 가질 수 있으므로 15 개). 어떤 방법이 더 빠르다 :함수를 여러 번 호출하거나 루프를 사용하여 함수를 호출하는 것이 더 빠릅니까?

for ($i=0; $i<15; $i++) 
{ 
    getCount($i); 
} 

또는

getCount(0); 
getCount(1); 
. 
. 
. 
getCount(14); 

?

현재 작업하고있는 페이지의 시나리오는 비슷합니다. 그것은 두 번째 방법을 사용하며 가독성이 부족합니다. 나는 그것을 첫 번째 방법으로 바꾸기를 고대하고있다. 런타임면에서 장점 또는 단점이 있습니까? 어떤 방법이 더 빠를 것입니까?

+0

자기 자신을 확인하지 않으시겠습니까? http://stackoverflow.com/a/9288945/1723893 –

+0

당신은 왜 그것을 테스트하지 않습니까? 당신의 캔트 같은 것이 아니라, 제게 첫 번째 방법을하는 것이 더 쉬워 보입니다. 그런 다음 매개 변수를 편집하십시오. – Neat

+1

시간에 민감한 경우 대부분의 실행 시간이 소요되는 getCount() 내부에 있습니다. 호출의 인라이닝과 인라이닝의 차이는 전혀 없습니다 –

답변

1

이 경우 루프를 사용하지 않아도됩니다. for 루프를 사용하면 두 가지 주요 이점을 얻을 수 있습니다.

  1. 횟수가 하드 코딩되지 않았기 때문에 함수가 호출 된 횟수를 동적으로 변경할 수 있습니다.
  2. 당신이하는 일을 식별하기 쉬운 유지 보수가 용이 한 코드를 얻을 수 있습니다.

for 루프와 같은 언어 구문을 사용하면 성능이 현저히 떨어집니다. 그래서 나는 아주 작은 성능 향상 (심지어 클라이언트에 의해 눈에 띄는 경우)

을 통해 읽기 쉽고 더 maintainable 코드를 선호합니다.

-1

둘 다 비슷합니다. 하나는 코드 줄을 더 많이 차지합니다.

0

한다면 이론적 일부 추가 체크가 가변이기 때문에 첫 번째 방법은 느리게한다.

이 Pratically 그것은이다 ... 정확히에 difficoult는 PHP는 intepreter과 장소에 최적화 어떤 종류의 내부에 무슨 일을 알고 있다고 생각해, 그래서 이것은 심지어 사실 않을 수도 있지만이 때문에 훨씬 중요하지 않다 마찬가지로, 루프의 성능이 매우 낮기 때문에 극단적 인 높은 성능의 컴퓨팅 작업을 수행하지 않으면 (PHP에서) 두 방법 모두 완전히 속도가 동등합니다.