2011-09-13 4 views
6
나는 약간의 C++ 코드를 프로파일 링 할 Very Sleepy을 사용하고

, 나는 그것이 레드 라인 별 석회 시간 동안 측정을 보여줍니다 소스보기에, 유일한 방법의 오픈이 선에 측정이 항상 있다는 것을 알 또는 중괄호를 닫는 경우도 있습니다.이 코드는 함수의 다른 코드 행과 비교하여 꽤 높습니다. 이 시간을 보여주는 것매우 슬리피 프로파일에 중괄호 근처에 표시되는 시간 측정은 무엇을 상징 하는가?

내 초기 가정은 여는 중괄호의 스택에 메소드 매개 변수를 밀어 소비, 시간이 닫는 중괄호에 대한 스택 터지는 보냈다. 사실입니까?

+0

이 루틴은 문자열로 할당 파괴 로컬 변수를 포함합니까? 이것은 중괄호가 일어날 때 스택에있는 중괄호를 사용하여 숨겨진 새롭고 중요한 파괴를 일으킬 수 있습니다. –

+0

@MikeDunlavey 내가 너무 만 원시적 인 지역 변수를 가질 방법이를 참조하십시오. –

+0

글쎄, 난 [이 방법]을 사용하는 사람 (들 해요 http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024# 378024), 의심의 여지가 없습니다. 그것은 지시에 이르기까지 정확히 무엇이 시간이 걸리는지 알려줍니다. (나는 VerySleepy의 소스 코드를 가지고있다. 그러나 그것을 보면서 실제로 무엇을 하는지를 말하기는 어렵다.) –

답변

4

twitter에서 Very Sleepy의 관리자 인 Richard Mitton (@grumpydev)이 대답했습니다 : "기능이 최적화되어 줄 번호가 코드와 정확히 일치하지 않습니다. 즉 모든 시간은 기능의 진행 과정에 퍼져 나가는 대신 처음부터 집중된다. "