У меня есть приложение, написанное на C ++ с использованием Visual Studio 2005. У приложения есть определенные проблемы с производительностью. Я хотел бы узнать где. Мне нужно детализировать, в каких классах / методах / строках приложение проводит большую часть времени. Можно ли это сделать с помощью WPA? Если да, то дайте мне ссылку на документацию?
Использование Windows Performance Analysis Tool в качестве профилировщика
Ответы (3)
Нет, WPT использует события Windows, это поможет вам диагностировать проблему только тогда, когда Windows является причиной вашего замедления. Вы точно не получите никакой диагностики для своего кода. Что вам нужно, так это настоящий профайлер. Хорошие стоят денег. Дополнительные советы см. В этой ветке.
Самый простой способ узнать, на что тратится время без надобности - это stackshots, которые можно легко получить с помощью кнопки« пауза »в Visual Studio.
Вам не нужно мерить; все, что вам нужно сделать, это поймать это с поличным. Если вы обнаружите, что он что-то делает на двух или более стеках, и этого можно избежать, вы значительно сэкономите время. И вы можете повторить процесс, потому что сначала небольшие проблемы будут «всплывать», когда вы устраните другие проблемы.
Попробуйте профилировщик YourKit .net. Я пробовал это и несколько других недавно, но это был единственный, который мне удалось заставить работать с моим проектом C ++ / CLI (со смесью управляемого и неуправляемого кода).
[Edit] Ой! Я читал WPA как WPF и предполагал, что вы хотите профилировать некоторый код .net.