Некоторые вызовы функций не отображаются в VTune

Я обнаружил, что некоторый код работает очень медленно (превращает 10-секундное приложение в 60-секундное). Я нашел медленный код, используя трюк «случайно приостановить приложение и посмотреть, где оно находится». Медленный код находится в вызове сторонней функции лицензирования, которая проверяет сервер лицензий на наличие действительной лицензии.

Когда я пытаюсь профилировать с помощью усилителя Intel VTune, этот медленный вызов функции не занимает много времени. Я не уверен, почему, но я предполагаю, что вызов функции должен спать, ожидая ответа сервера лицензий или что-то в этом роде, что заставляет VTune не идентифицировать его как узкое место. Есть ли способ заставить VTune идентифицировать такие вызовы?


person default    schedule 19.02.2015    source источник


Ответы (1)


Мне удалось заставить его отображаться с помощью режима профилирования Блокировки и ожидания вместо режима профилирования Основные точки доступа. Используя Блокировки и ожидания, я вижу, что selectfunction является одним из моих основных блокирующих вызовов, и я могу проследить этот вызов обратно в код моего приложения, чтобы увидеть, как он вызывается.

person default    schedule 19.02.2015