Название: Профилирование gprof Отправлено: juvf от Ноябрь 16, 2020, 07:26 Помогите разобраться. Куча мануалов по gprof - но они не понятные. Вот на примере Профилирование приложений в Qt Creator с помощью gprof (https://www.pvsm.ru/qt-2/10777)
начинаются непонятки с этого Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls ms/call ms/call name 75.08 7.35 7.35 1500 4.90 4.90 functionB() 24.92 9.79 2.44 1500 1.63 1.63 functionA() что такое self ms/call и total ms/call? Есть описание (https://www.opennet.ru/docs/RUS/gprof/gprof-5.html) Цитировать `self ms что такое `собственных миллисекунд на вызов'? Например для functionB() - Это время затраченное на вход/выход в/из функции functionB() (т.е. на переключение контекста из main в functionB и обратно)? call' (`собственных миллисекунд на вызов') / Это поле представляет собой среднее количество миллисекунд, затраченных этой функцией на вызов, если эта функция профилируется. Иначе это поле остается пустым для этой функции. `total ms call' (`всего миллисекунд на вызов') / Это поле представляет собой среднее количество миллисекунд, затраченных этой функцией и ее подпрограммами на вызов, если эта функция профилируется. Иначе это поле остается пустым для этой функции. Название: Re: Профилирование gprof Отправлено: Igors от Ноябрь 16, 2020, 11:19 что такое `собственных миллисекунд на вызов'? Например для functionB() - Это время затраченное на вход/выход в/из функции functionB() (т.е. на переключение контекста из main в functionB и обратно)? Никогда не слышал о qprof, но в профайлерах что я пользуюсь "собственных" (self) означает "только эта ф-ция", т.е. без учета вызываемых из нее ф-ций. Для functionA/B оно такое же как общее (total), т.к они никого не зовут, a для main нулевое т.к. все делается вызываемыми A/B[off] Придерусь к слову :) Что такое "переключение контекста"? Уместен ли здесь этот термин? (по-моему нет, это просто вызов с обычной установкой стека). Предагаю пожевать что это [/off] |