XPerfView медленно загружает символы

Я пытаюсь выполнить стек в Xperf, используя командный файл, аналогичный указанному в разделе Получение символов с помощью xperf.

Я запускаю XperfView, проверяю правильность пути к символам, а затем загружаю символы. Однако, когда я пытаюсь открыть сводную таблицу в выбранной части (примерно 5 секунд) графика "Выборка ЦП по ЦП", анализатор производительности зависает (не отвечает) в течение длительного времени (часы).

Я оставил его запущенным вчера вечером, и когда я пришел этим утром, итоговая таблица наконец-то загрузилась, и результаты, как и ожидалось, были ожидаемыми... Я подумал, что, возможно, он просто выполняет начальную загрузку для кэширования символов в символы C:\, но повторное тестирование сегодня утром имеет похожие проблемы (в этот момент зависайте 1 час 15 минут).

3 ответа

WPT (xperf, xperfview, WPA) не поставляется с dbghelp.dll и symsrv.dll. Это означает, что в зависимости от того, что находится на вашем пути, вы можете получить:

  1. Быстрая загрузка символов
  2. Загрузка символа, которая занимает до 150 раз дольше
  3. Нет загрузки символов вообще.

Решение состоит в том, чтобы скопировать заведомо исправную версию этих DLL-файлов в каталог установки WPT. Для получения дополнительной информации см. Этот пост: http://randomascii.wordpress.com/2012/10/04/xperf-symbol-loading-pitfalls/

В своем посте Брюс Доусон предполагает, что существует проблема с dbghelp.dll и / или symsrv.dll в WPT, поставляемая в текущем SDK. Он предлагает заменить их на Visual Studio 2010 или Debugging Tools for Windows (например, WinDbg). Работал на меня...

Вы установили Symcache что-то вроде этого

SRV*c:\dev\symbols*http://msdl.microsoft.com/download/symbols

Symcache будет кэшировать символы локально. У меня обычно есть _NT_SYMBOL_PATH переменная среды с вышеуказанной информацией.

НТН

Другие вопросы по тегам