Russian Qt Forum

Программирование => С/C++ => Тема начата: juvf от Ноябрь 16, 2020, 07:26



Название: Профилирование 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

    call' (`собственных миллисекунд на вызов') /

    Это поле представляет собой среднее количество миллисекунд, затраченных этой функцией на вызов, если эта функция профилируется. Иначе это поле остается пустым для этой функции.

`total ms

    call' (`всего миллисекунд на вызов') /

    Это поле представляет собой среднее количество миллисекунд, затраченных этой функцией и ее подпрограммами на вызов, если эта функция профилируется. Иначе это поле остается пустым для этой функции.
что такое `собственных миллисекунд на вызов'? Например для functionB() - Это время затраченное на вход/выход в/из функции functionB() (т.е. на переключение контекста из main в functionB и обратно)? 


Название: Re: Профилирование gprof
Отправлено: Igors от Ноябрь 16, 2020, 11:19
что такое `собственных миллисекунд на вызов'? Например для functionB() - Это время затраченное на вход/выход в/из функции functionB() (т.е. на переключение контекста из main в functionB и обратно)? 
Никогда не слышал о qprof, но в профайлерах что я пользуюсь "собственных"  (self) означает "только эта ф-ция", т.е. без учета вызываемых из нее ф-ций. Для functionA/B оно такое же как общее (total), т.к они никого не зовут, a для main нулевое т.к. все делается вызываемыми A/B

[off]
Придерусь к слову :) Что такое "переключение контекста"? Уместен ли здесь этот термин? (по-моему нет, это просто вызов с обычной установкой стека). Предагаю пожевать что это
[/off]