Я однажды написал такого зрителя.Он сфокусирован на строке кода, показывающей процент выборок, проходящих через эту строку, и на представлении «бабочка», позволяющем переходить к вышестоящим или подчиненным строкам кода.
Это была хорошая демонстрация, но действительно ли я ее использовал?Недолго.
(Я предполагаю, что выборки стека были взяты в течение интервала, который вы хотите ускорить, т.е. не во время ожидания пользователя.)
Дело в том, чтоПрограмма, вероятно, делает что-то расточительное в то время.(Если это не так, вы не можете ускорить его.) Независимо от того, что это расточительная вещь, она состоит из некоторого процента времени, потраченного по плохим причинам, например, 10%, 50%, 90% или что-то еще.В течение этого времени он находится в стеке, поэтому проверка образцов стека покажет это.
И вам не нужно смотреть на очень многие из них.Если что-то занимает 50% времени, 1000 сэмплов покажут это примерно на 500, а 10 сэмплов покажут это примерно на 5. Большее количество сэмплов оценит процент с дополнительной цифрой точности.Если ваша цель состоит в том, чтобы изолировать проблему, чтобы вы могли ее исправить, вам не понадобится эта дополнительная цифра.
Итак, инструмент, который показывает вам, через строку, процент выборок стека, проходящих черезэту строку очень приятно иметь, потому что на ней появится расточительный код, показывающий процент.
То, что он не показывает вам, является причиной выполнения оператора, как вы знаете,если это расточительно.Просмотр контекста оператора в стеке говорит вам об этом.
Так что, хотя у меня был зритель, я просто закончил изучать сами сэмплы, и только около 10 или 20 из них.Чем больше процент, тем меньшее количество образцов мне нужно посмотреть, прежде чем я его найду. Вот пример.