일부 블로그에서이 문제를 발견했습니다. 다음 두 루프가 주어 졌는데, 그 중 하나는 더 빠르다는 것입니다.왜 내림차순으로 루프가 오름차순으로 증가하는 것보다 빠릅니까?
for(int i = 100000; i > 0; i--) {}
for(int i = 1; i < 100001; i++) {}
왜 첫 번째 것이 두 번째 것보다 빠릅니까?
일부 블로그에서이 문제를 발견했습니다. 다음 두 루프가 주어 졌는데, 그 중 하나는 더 빠르다는 것입니다.왜 내림차순으로 루프가 오름차순으로 증가하는 것보다 빠릅니까?
for(int i = 100000; i > 0; i--) {}
for(int i = 1; i < 100001; i++) {}
왜 첫 번째 것이 두 번째 것보다 빠릅니까?
일부 컴파일러에서 생성 된 일부 프로세서의 경우 첫 번째 값인 은 값이 0과 비교되기 때문에 일 수 있습니다. @DeadMG 노트는 1985 년
전에 x86 프로세서, 예를 들어, 적용 그러나이므로 :
는은 약 97 %의 시간을 말하는 그에게 동의 : 조기 최적화는 모든 악의 뿌리입니다.
경고 메시지가 표시됩니다.
벤치 마크가 발생했거나 발생하지 않았습니다. – Mysticial
차이가있을 경우 나노초 단위로 측정됩니다. – Bohemian
아마도 루프 자체보다 루프에서 무엇을하는지에 따라 달라집니다. 이 미세 최적화 경로를 따라 가면'++ i'가'i ++'보다 빠르다는 것을 알았습니까? –