2010-12-16 3 views
5

코딩하는 동안 나는 방금 다음과 같은 질문을 던졌다 :뭐가 더 빠릅니까? if()를 반환하고, 그렇지 않으면 return; 또는 if() return; 반환;

더 빠르다 :

if(false) return true; 
else return false; 

이것보다?

if(false) return true; 
return false; 

물론 차이가 있다면 그것은 어리 석다. 그러나 내가 알기 전까지는 내 호기심이 사라지지 않을 것이다 : D

+1

의 루트입니다? 그리고 이것이 성능상의 병목 현상을 일으키는 중요한 이유라고 생각하는 이유는 무엇입니까? : | Btw 모두 가독성이 부족합니다. – mario

+2

그것을 측정하십시오. 적절한 액셀러레이터/컴파일러는 양쪽 모두를'return false'로 최적화합니다. – erenon

+3

두 번째는 더 적은 토큰을 사용하기 때문에 더 빠릅니다 (T_ELSE가 없음). 그러나 당신은 마이크로 초를 말하는 것입니다. 이것은 마이크로 최적화의 바로 정의입니다. 걱정하지 마시고 가장 의미가있는 코드를 작성하십시오. – ircmaxell

답변

15

그냥 D :

return !false; 

을 그래서 실제 생활에서 예 :

return !$this->isSth(); 

// Not 

if ($this->isSth) { 
    return false; 
} else { 
    return true; 
} 

성능은 중요하지 않습니다. 모든 솔루션은 매우 빠르며, 최적화가 필요 없습니다. 도널드 크 누스의 말씀을 기억하십시오

조기 최적화 당신이 Xdebug는 시도 했 모든 악의

+4

조숙 한 최적화는 모든 악의 근원입니다 - DonaldKnuth./위자료를 올바르게 인용하십시오.) – erenon

+0

아무에게도 인용하고 싶지 않았습니다. 어쨌든 ... 고쳤습니다. – Crozin

+0

그것이 제가 생각하기에, 최소한의 성능 차이에 대해 더 잘 이해할 수있는 코드를 갖는 것이 더 좋습니다. 감사! – Pioul