C++ Профилирование: KiFastSystemCallRet
Я искал это после того, как увидел, что это профиль с самым высоким рейтингом при профилировании с использованием Very Sleepy, и кажется, что все получают ответ "это системная функция, игнорируйте ее". Но подсказка Sleepy для функции говорит:
Подсказка: KiFastSystemCallRet часто означает, что поток ожидал чего-то другого, чтобы закончить. Возможными причинами могут быть дисковый ввод-вывод, ожидание события или просто вызов Sleep().
Теперь мое приложение абсолютно перегружает процессор, и это немного странно, 33% времени тратится на ожидание чего-либо.
Я действительно просто игнорирую это?
РЕДАКТИРОВАТЬ: по-видимому, 77% вызовов этого поступают из QueryOglResource (?), Который находится в модуле nvd3dnum. Я думаю, что это может быть nvidia Direct3D, то есть рендеринг.
2 ответа
Не игнорируйте это. Узнайте, как это называется. Если вы посмотрите на стек вызовов там, где он попадет в ваш код, это скажет вам, где проблема. Важно остановить его случайным образом (не с точкой останова), так что наиболее вероятно, что появятся трассировки стека, которые на самом деле стоят много времени.
Эта функция довольно бессмысленна для профилировщика, это, по сути, логическая конечная точка для целого ряда системных функций. Какие функции у вас есть, вызывая это? WaitForMultipleObjects? Асинч читает?