2010-04-12 5 views
4

매우 졸음을 사용하여 프로파일 링 할 때 최고 등급 항목을 본 후이를 검색했습니다. 모든 사람이 "시스템 기능이므로 무시하십시오"라는 메시지가 나타납니다. 그러나 기능의 슬리피 힌트는 말한다 :C++ 프로파일 링 : KiFastSystemCallRet

힌트 : KiFastSystemCallRet 종종 스레드가 완료 뭔가 다른 를 기다리고 있었다 을 의미한다. 가능한 원인은 입니다. 디스크 I/O이거나 이벤트를 기다리고 있거나 Sleep()을 호출 한 것일 수 있습니다.

이제 내 응용 프로그램은 CPU를 완전히 스릴 있으며, 약간 이상하게 보입니다. 33 %의 시간이 뭔가를 기다리고 있습니다.

정말 무시하나요?

EDIT : 명백하게이 호출의 77 %는 nvd3dnum 모듈에있는 QueryOglResource (?)에서 온 것입니다. I 은 nvidia Direct3D에 해당 될 수 있다고 생각합니다.

+3

호출 스택을 확인하여 호출 스택이 * from *인지 확인하십시오. – jalf

답변

1

이 기능은 프로파일 러에게는 의미가 없으며 기본적으로 시스템 기능의 전체 범위에 대한 논리적 끝점입니다. 어떤 기능을 부르셨습니까? WaitForMultipleObjects? 비동기 읽기?

2

무시하지 마십시오. Find out how it's being called. 호출 스택을 코드로 가져 오는 위치로 되돌려 보면 이 문제의 위치를 ​​알려줍니다. 중단 점을 사용하지 않고 무작위로 중지하는 것이 중요합니다. 실제로 많은 시간을 소비하는 스택 추적이 나타날 가능성이 큽니다.