Russian Qt Forum
Январь 31, 2023, 00:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Профилирование gprof  (Прочитано 2596 раз)
juvf
Программист
*****
Offline Offline

Сообщений: 552


Просмотр профиля
« : Ноябрь 16, 2020, 07:26 »

Помогите разобраться. Куча мануалов по gprof - но они не понятные. Вот на примере Профилирование приложений в Qt Creator с помощью gprof

начинаются непонятки с этого
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? Есть описание
Цитировать
`self ms

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

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

`total ms

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

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

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Ноябрь 16, 2020, 11:19 »

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

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


Страница сгенерирована за 0.048 секунд. Запросов: 22.