지역변수 이용에 따른 속도차이에 대한 질문입니다.
글쓴이: kknd345 / 작성시간: 월, 2005/08/15 - 12:14오전
void Message( Environment *env ) { double aaa= env->value; double bbb= env->number; //중략 //밑에 aaa와 bbb 가 엄청나게 반복되는 구조 }
간단하게 예를 든 건데요
Message 함수가 while 문으로 계속 반복해서 호출되는 구조입니다.
저런식의 경우일때 aaa와 bbb 변수를 이용하는게 빠른가요? 아님 env->number나 env->value 를 바로 쓰는게 빠른가요?
Forums:
테스트 해보지 않고는 모르는 일이겠지만, aaa와 bbb를 이용하는 쪽이
테스트 해보지 않고는 모르는 일이겠지만, aaa와 bbb를 이용하는 쪽이 컴파일러의 최적화에 더 유리하지 않을까요?
Re: 지역변수 이용에 따른 속도차이에 대한 질문입니다.
행복하게도, 현대의 컴파일러는 대부분 저런 경우에 대한 최적화를 합니다. level 1정도로 해서 어셈 코드를 생성해서 보시면 거의 비슷하게 나올겁니다.
최적화를 전혀 안한다면, 아마도 aaa, bbb변수에 캐슁을 해서 사용하는게 좀 더 빠를 가능성이 크겠지요. 간접 메모리 접근이 줄어드니까요.
아시겠지만, 매뉴얼 최적화는 프로파일링을 통해서 병목을 찾은 후에 하는 것이 맞습니다. 물론, 그렇게 하시겠지만요...
aaa, bbb로 하면 읽기 좋겠군요. readability성능상
aaa, bbb로 하면 읽기 좋겠군요. readability
성능상? 제 생각에는 전혀... 둘다 동일하겠습니다.
댓글 달기