2012-09-12 5 views
0

gprof를 사용하여 OpenGL 응용 프로그램을 프로파일 링하려고합니다. 메인 그리기 기능이 1 초에 수십 번 호출되기 때문에 파티클 기능에서 소비되는 시간이 적습니다. gprof의 출력은 "%의 .2f"로 포맷 된 시간을 포함하고 거의 모든 시간은 0.00 같다 :GPROF 출력의 시간 정밀도를 변경하십시오.

[4]  35.2 0.00 0.06 9414   AbstractLayer::render(IDrawContext&) [4] 
       0.00 0.02 1046/1046  SimpleTiledImageLayer::doRender(IDrawContext&) [9] 
       0.00 0.02 1046/1046  AtmosphereLayer::doRender(IDrawContext&) [10] 
       0.00 0.01 1046/1046  GeographicObjectLayer::doRender(IDrawContext&) [23] 
       0.00 0.01 1046/1046  POILayer::doRender(IDrawContext&) [27] 

더 정확하게 시간을 인쇄 할 수있는 가능성이 있습니까?

+0

"병목 현상"을 찾아 내서 속도를 높일 수 있기 때문에 프로파일 링하는 경우 중요도가 낮은 정밀도가 포함됩니다. [* Check. *] (http://stackoverflow.com/a/1779343/23771) 초 단위 또는 밀리 초가 아닌 고정밀도가 아니라 호출 횟수가 아닌 "자체"시간이 아닙니다. 그 이유는 고칠 수있는 "병목 현상"이 있다면, 그것은 * 코드에 있으며 전체 시간의 상당 부분을 차지합니다. 작은 분량을 소비하는 것은 속도를 높이면 작은 분수를 절약 할 수 있습니다. –

+0

... (계속) 속도를 높일 수있는 유일한 것들이 작은 것, 즉 프로그램이 이미 최적 상태에 근접했다고 생각하면 * 어쩌면 * 당신이 맞을 수도 있고 거기에 큰 스피드 업 기회가있을 수도 있습니다. 프로파일 러가 당신에게 보여주지 않기 때문에 보이지 않습니다. 그건 잘못된 위법입니다. (http://scicomp.stackexchange.com/a/2719/1262). 거짓 네거티브는 큰 슬리퍼가 될 수 있습니다. –

답변

0

방금 ​​소스를 수정하고 binutils를 다시 컴파일했습니다. 간단하다 =)

관련 문제