사람들은 "1 비트 왼쪽으로 시프트"를 쓰는 대신에 "2 배로"쓰기 만합니다. 훨씬 더 읽기 쉽기 때문에 컴파일은 최적화를 수행 할만큼 똑똑 할 것입니다.컴파일러 최적화의 한계는 무엇입니까? 얼마나 똑똑한가요?
일반적으로 컴파일해야 할 것은 무엇이며 개발자는하지 않아야합니다 (코드 가독성을 위해)? 저는 string == ""
대신 항상 string.length == 0
이라고 쓰고 있습니다. 왜냐하면 제가 5-6 년 전에 읽었던 숫자 조작이 훨씬 빠르기 때문입니다. 아직도 사실입니까?
또는 대부분의 컴파일러는 다음과 같은 똑똑 변환하는 것입니다 :
int result = 0; for (int i = 0; i <= 100; i++) { result += i; }
로 : int result = 5050;
?
대부분의 컴파일 작업이 수행하지 않기 때문에 내가 좋아하는 "최적화"는 무엇입니까?
컴파일러가 수행 할 수있는 모든 최적화를 열거 할 수있는 방법은 없습니다. (그들 중에는 많은 것들이 있습니다.) 더 구체적인 예가 있습니까? – Mysticial
어떤 컴파일러입니까? – SLaks
죄송합니다, 제 질문은 특정 컴파일러 또는 특정 알고리즘에 맞지 않습니다. 나는 당신 같은 훌륭한 개발자로부터 멋진 코드를 배울 수 있기를 바라는 일반적인 질문을하고 싶다. – user1032613