< <=?
비교 연산자 < 또는 <=인 경우 < 단일 단계 또는 바운드가 있기 때문에 더 빠릅니다. 그러나 이 가정은 올바르지 않습니다. 성능에 미치는 영향은 미미합니다.
기계 코드 생성
x86을 포함한 대부분의 아키텍처에서 적분 비교에는 다음과 같은 기계 명령어가 사용됩니다.
점프 명령에는 jne(같지 않으면 점프), jz(0이면 점프), jg(크면 점프) 등이 포함됩니다.
예제 코드
다음을 고려하세요. 예:
if (a < b) { // Do something 1 }
및
if (a <= b) { // Do something 2 }
컴파일러에서 생성된 어셈블리 코드를 비교하면 사용된 점프 명령(jge와 jg)의 차이점을 알 수 있습니다.
if (a < b) mov eax, [a] cmp eax, [b] jge .L2 // Do something 1 if (a <= b) mov eax, [a] cmp eax, [b] jg .L5 // Do something 2
따라서 기계어 코드의 유일한 차이점은 점프 명령이며, 이는 비교 자체가 동일한 양의 작업을 수행함을 나타냅니다.
부동 소수점
x87 부동 소수점 비교에도 동일한 원칙이 적용됩니다. 컴파일러는 < 및 <= 비교.
결론
연산자 수(< 대 <=)의 차이에도 불구하고 적분 비교의 성능 차이는 미미합니다. 대부분의 아키텍처에서. 사용된 점프 명령(jge 및 jg)은 실행하는 데 동일한 시간이 걸립니다. 부동 소수점 비교에서도 마찬가지입니다.
위 내용은 `의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!