필자 리버싱 ㅈ고수임 그냥 내말이 맞음
1. IF문을 많이 넣는다고 속도가 느려진다 -> X
if문도 결국 1+1과 같은 실행코드임
몇천줄이 되는 로직도 즉시 실행완료 되는데 test/cmp 단일 명령어로 플래그 비교해서 점프하는게 속도에 영향을 주는거 논하는거 자체가ㅄ임
if문을 없게끔 로직을 짠다? 그게 더 실행 리소스 많이먹음 ㅄ
2. if문 보다 switch가 더 빠르다 -> O
컴파일러 설정마다 다를 수도 있긴한데 보통 if else로 여러개 비교하는 경우는 위에서부터 아래대로 바이너리 코드 읽게됨 점프에 점프를 여러번 거치는거지
하지만 switch로 설계한 경우에는 분기하는 eip 주소를 담고있는 포인터 배열이 case 사이즈만큼 컴파일시 미리 할당됨 switch case로 동적인 데이터를 비교 못하는게 바로 이때문임
즉 바로 포인터 인덱스를 참조해서 점프를 하니깐 if문 보다는 조금 더 빠르지만 1번에서 말한것처럼 속도 체감에 좌지우지를 하진않음
iq80
병 신
해당 댓글은 삭제되었습니다.
ㅇ