성능

2012-01-21 3 views
-3

은보다 빠른 일관입니다 (! '안녕하세요'는 ==을 $) 나타납니다 ($ A! = '안녕하세요')성능

// (!$a == 'hello') 
Used time: 52.743232011795 
Used time: 52.633831977844 
Used time: 51.452646970749 

//($a != 'hello') 
Used time: 76.290767908096 
Used time: 81.887389183044 
Used time: 64.569777011871 

이런 일이 왜 어떤 생각? 이 최적화 수준은 대부분의 경우 별다른 상관이 없음을 이해합니다. 질문은 순전히 호기심에서 벗어난 것입니다. (참조 : http://www.php.net/manual/en/language.operators.comparison.php#99216)

+6

두 작업에 동일한 결과가 없습니다. – deceze

+0

'$ a'이 (가) 설정 되었습니까? –

+0

@milo 예. 위의 PHP 참조와 같은 코드입니다. – mixdev

답변

5

!$a == 'hello'은 (부정적) 부울로 $a을 캐스팅하고이를 문자열과 비교합니다. 두 문자열을 실제로 비교하는 것보다 결정하기가 쉽기 때문에 더 빠를 수도 있습니다. 또한 잘못된 결과를 줄 것입니다. 당신이 비교할 필요가있는 것은 !($a == 'hello')입니다. 나는 그것이 대략 같다고 생각합니다.

+0

정확합니다. 나는 그것을 테스트했고! ($ a == 'hello')는 성능면에서 비교 가능합니다. – mixdev