< 연산자와 <= 연산자의 성능 차이
아니요, < 연산자는 <= 연산자와 동일한 실행 시간을 가집니다. 두 연산자 모두 유사한 방식으로 동작하며, 명령어를 수행하는 데 걸리는 시간도 완전히 같습니다.
컴파일 과정에서 jcc(조건부 점프 명령어)가 생성되며, 비교 유형에 따라 프로그램 흐름이 해당 명령어로 점프합니다. 대표적인 비교 유형은 다음과 같습니다.
je − 같으면 점프(Jump if equal)
jg − 크면 점프(Jump if greater)
jne − 같지 않으면 점프(Jump if not equal)
jge − 크거나 같으면 점프(Jump if greater or equal)
< 연산자와 <= 연산자의 유일한 차이점은, < 연산자는 'jg' 명령어를 실행하는 반면 <= 연산자는 'jge' 명령어를 실행한다는 점입니다. 그러나 두 연산자 모두 실행에 걸리는 시간은 동일합니다.
왜 속도 차이가 없을까?
CPU 입장에서 두 연산자는 모두 cmp(비교) 명령어 한 번과 조건부 점프 한 번으로 처리됩니다. 어떤 조건 플래그를 검사하느냐의 차이만 있을 뿐 소요되는 사이클 수에는 차이가 없습니다. 따라서 성능 최적화를 위해 <= 대신 <를 사용하는 것은 아무런 의미가 없습니다.
다음은 C 언어에서 < 연산자와 <= 연산자를 사용한 예제입니다.
예제
#include<stdio.h>
int main() {
int a = 8;
int b = 8;
if(a<b)
printf("b is greater than a\n");
if(a<=b)
printf("b is greater or equal to a");
else
printf("b is smaller than a");
return 0;
}
출력 결과
위 코드의 출력 결과는 다음과 같습니다.
b is greater or equal to a