XPerfView медленно загружает символы
Я пытаюсь выполнить стек в Xperf, используя командный файл, аналогичный указанному в разделе Получение символов с помощью xperf.
Я запускаю XperfView, проверяю правильность пути к символам, а затем загружаю символы. Однако, когда я пытаюсь открыть сводную таблицу в выбранной части (примерно 5 секунд) графика "Выборка ЦП по ЦП", анализатор производительности зависает (не отвечает) в течение длительного времени (часы).
Я оставил его запущенным вчера вечером, и когда я пришел этим утром, итоговая таблица наконец-то загрузилась, и результаты, как и ожидалось, были ожидаемыми... Я подумал, что, возможно, он просто выполняет начальную загрузку для кэширования символов в символы C:\, но повторное тестирование сегодня утром имеет похожие проблемы (в этот момент зависайте 1 час 15 минут).
3 ответа
WPT (xperf, xperfview, WPA) не поставляется с dbghelp.dll и symsrv.dll. Это означает, что в зависимости от того, что находится на вашем пути, вы можете получить:
- Быстрая загрузка символов
- Загрузка символа, которая занимает до 150 раз дольше
- Нет загрузки символов вообще.
Решение состоит в том, чтобы скопировать заведомо исправную версию этих 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
переменная среды с вышеуказанной информацией.
НТН