Просьба посмотреть at this и this.
Рассмотрите любые темы. В любой момент времени он что-то делает, и он делает это по какой-то причине, и медлительность может быть определена как время, которое он тратит на плохие причины - ему не нужно тратить время.
Сделайте снимок потока в определенный момент времени. Возможно, это в пропуске кеша, в инструкции, в инструкции, в функции, вызванной из инструкции вызова в другой функции, вызываемой из другой и т. Д., До call _main
. У каждого из этих шагов есть причина, по которой раскрывается проверка кода.
- Если какой-либо из этих шагов не является очень веской причиной, и его можно избежать, этот момент времени не нужно тратить.
Возможно, в это время диск приближается к определенному сектору, поэтому можно запустить некоторую передачу данных, чтобы буфер мог быть заполнен, поэтому оператор чтения может быть удовлетворен, в функции, и эта функция вызывается из сайта вызова в другой функции, а другой - и т. д., вплоть до call _main
, или что бы ни случилось, это вершина потока.
- Повторите предыдущий пункт 1.
Таким образом, способ найти узкие места, чтобы найти, когда код тратит время на бедных причинам, и лучший способ найти, что это делать снимки его государство. EIP, или любой другой крошечный кусок штата, не собирается этого делать, потому что он не скажет вам , почему.
Очень мало профилографов «получить». Те, которые делают, являются стек-пробоотборниками настенных часов, которые сообщают по строке кода (не по функции) процент времени активного (не количество времени, особенно не «самостоятельное» или «эксклюзивное» время.) это Zoom, и есть другие.
Глядя на то, где EIP висит, похоже на попытку рассказать время на часах только второй рукой. Функции измерения подобны попытке рассказать время на часах с отсутствием некоторых цифр.Профилирование только во время CPU, а не во время заблокированного времени, похоже на попытку рассказать время на часах, которые случайным образом перестают работать на длинных отрезках. Будучи обеспокоен точностью измерения, это похоже на попытку вовремя обедать.
Это не загадочная тема.
Есть ли инструменты для получения данных профилировщика и их размещения в этой форме? –
Какую операционную систему вы хотите запустить? Кажется, что есть такие инструменты для Solaris и Mac OS X. –
Претензии к выбору процентных соотношений, которые составляют до 100% :-) – templatetypedef