Помогите разобраться. Куча мануалов по 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 и обратно)?
что такое `собственных миллисекунд на вызов'? Например для functionB() - Это время затраченное на вход/выход в/из функции functionB() (т.е. на переключение контекста из main в functionB и обратно)?
Нет.
self и total — это название столбцов. т.е., соответственно, собственное время и общее время.
ms/call — это единицы измерения т.е. миллисикунды/вызов.
т.о. значение в столбце total — это среднее время выполнения в миллисекундах самой функции включая время выполнения всех других подпрограмм, которые она вызывает. А self — не включая время подпрограмм. Как не сложно видеть, значение в поле self ms/call равно общему количеству секунд, затраченному при всех вызовах, (self seconds), поделённому на общее количество вызовов (calls) и умноженное на 1000.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей