2011-01-29 5 views
3

저는 C로 아이폰 용 게임을 코딩하고 있습니다. 성능 문제가 발생하여 병목 현상이 어디에 있는지를 확인하기 위해 악기를 사용하기로 결정했고, 리터럴의 캐스트가 최적화되지 않았다는 것을 알게되었습니다. 예를 들어gcc : 리터럴의 캐스트가 최적화되지 않은 이유는 무엇입니까?

:

if(x == 3.0f) {....} 

은 왜 컴파일러에 의해 최적화되지 않은 :이처럼 작성하는 경우

if(x == (float)3) {....} 

이 빠르게 실행?
릴리스 모드에서 gcc를 사용하고 있습니다.

+3

생성 된 개체 코드를 보았습니까? –

+0

"릴리스 모드"란 무엇입니까? 나는 GCC에'-release-mode' 플래그가 있다고 생각하지 않는다. –

+0

@Chris Lutz : 아마도 Xcode가 릴리스 구성을 호출하는 것일뿐입니다 (디버그 구성과 반대). – BoltClock

답변

1

의견에 따르면, 나는 객체 코드를 보았고 동일했다.
Xcode 인스트루먼트는 한 라인 씩 라인을 제공하는데, 100 % 신뢰할 만하지 않습니다.

관련 문제