2012-06-21 4 views
0

현재 PHP로 소켓 서버를 만들고 있는데, 어느 것이 더 빨리 사용할 수 있는지 알고 싶습니다. while 루프보다 빠르다고 들었지만 whiles에 대해서는 모른다.PHP : 어느 것이 더 빠릅니까? while, while, or for 루프

감사

+0

빠른 실행 –

+0

가능한 복제본 : http://stackoverflow.com/questions/8081253/do-while-is-the-fastest-loop-in-php –

+0

중복 : http://stackoverflow.com/questions/3629174/what-loop-while-for-for-for-for- –

답변

0

차이 자체가 루프를 작성 기본적으로 그냥 다른 방법을 것 같은이 없다가, 직접적으로 영향을 할 수있는 유일한

C.

에서 가져온 번 조건의 수는 평가되지만 스스로 계산할 수 있습니다.

그래서 가장 간결하고 읽기 쉬운 것을 사용하십시오.

+0

[표창장이 필요합니다] –

+0

그들은 항상 블로그에서 매우 나쁜 벤치 마크를 작성하고 있습니다. 물론 결론은 발견되지 않습니다. 실제적인 고수준 프로그램에서는 측정 할 수없는 작은 차이점이 있기 때문에 결코 결론을 내릴 수 없습니다. –

+0

그렇습니다. 그러나 "측정 할 수있는 차이는 없습니다"라는 진술은 과학적으로 사실이 아닙니다. 차이가 있으며 측정 가능합니다. 걱정할만큼 충분한 지 여부는 완전히 다른 문제입니다. 그 말을 편집 해 주셨습니다, 잘 부탁드립니다. :) –

0

용도에 관계없이 사용하십시오. for 루프 및 while 루프는 처음 점검 된 조건으로 루프하는 데 사용됩니다. do-whiles는 코드가 적어도 한 번 실행된다는 것을 보증합니다.

따라서이 제약 조건을 기반으로 선택 사항을/while 또는 do로 즉시 좁힐 수 있습니다. 부적절한 구문을 사용하면 어쨌든 속도가 느려질 수있는 매우 추한 코드가 생성됩니다.

동안과 사이에 차이가 있다고 생각하지 않습니다. 비록 당신이 과학 도서관을 쓰고 있었다고하더라도, 이것은 거의 눈에 띄지 않을 것입니다. 일반적인 지침은 for 루프는 사물을 통해 반복하고 while 루프는 다른 일반적인 용도로 사용하도록 설계되었습니다.

1

코드의 속도가 너무 높아서 프로필입니다. 특정 코드 스 니펫의 성능 (예 : this과 같은 곳)에 대해 읽은 것이면 별다른 이상한 PHP 인터프리터가 있기 때문에 특정 경우에 잘못 될 수 있습니다.

microtime에서 시작하여 XDebug과 같은 완전한 프로파일 러 툴킷으로 끝나는 PHP 프로그래머를위한 많은 프로파일 링 도구가 있습니다. 프로파일 링의 기본 지침은 this topic을 읽는 것이 좋습니다. 사용하는 벤치 마크에 따라

3

, do 루프 빨리 가장자리로 표시되었습니다 :이 benchmark에서

http://www.ebrueggeman.com/blog/php_benchmarking_loops

Test   Avg Execution Time 
for loop  23.44 ms 
while loop  24.65 ms 
do while loop 22.96 ms 

foreach이에게 보여 다른 루프 유형을-수행하고 whilefor을 능가하는 것으로 나타났습니다. 나는 이것이 내가 인용 한 첫 번째 시험과 모순된다는 것을 알기 때문에 이것을 가져온다.

마지막으로, this benchmark은 보다 약간 더 빠른 while이라는 결과를 뒷받침합니다.

결론? 벤치 마크에서 결정을 내리는 범위에서 유스 케이스를 에뮬레이션 할 수있는 벤치 마크는 없으며 이는 프로그램을 실질적으로 향상시키지 않는 마이크로 최적화 일 수 있습니다. 상황에 맞는 구문을 사용하고 변형을 사용하여 자신의 응용 프로그램을 벤치 마크하는 테스트를 작성하십시오. whilefor을 교환하는 것은 매우 간단합니다. 둘 다 시도하고 얻은 결과를 확인하십시오. 다음 프로젝트를 위해이 교훈을 잊어 버리십시오. 왜냐하면 그것은 독특 할 것이고 다시 개별적인 테스트를받을 자격이 있기 때문입니다.

문서