The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа
Вперед Назад Содержание

5. Как разобраться в простом профиле

Простой профиль показывает общий итог времени, затраченного на исполнение каждой функции вашей программы. Если не указана опция `-z', то функции без явных затрат времени на их выполнение, без явных вызовов, не упоминаются. Заметим, что функция, не откомпилированная для профилирования и не выполнявшаяся достаточное для отображения на гистограмме время, неотличима от функции, которая никогда не вызывалась.

Здесь показан пример простого профиля небольшой программы:

      Flat profile: (Простой профиль:)
 
      Each sample counts as 0.01 seconds. (Каждый отсчет == 0.01 сек.)
        %   cumulative   self              self     total
       time   seconds   seconds    calls  ms/call  ms/call  name
       33.34      0.02     0.02     7208     0.00     0.00  open
       16.67      0.03     0.01      244     0.04     0.12  offtime
       16.67      0.04     0.01        8     1.25     1.25  memccpy
       16.67      0.05     0.01        7     1.43     1.43  write
       16.67      0.06     0.01                             mcount
        0.00      0.06     0.00      236     0.00     0.00  tzset
        0.00      0.06     0.00      192     0.00     0.00  tolower
        0.00      0.06     0.00       47     0.00     0.00  strlen
        0.00      0.06     0.00       45     0.00     0.00  strchr
        0.00      0.06     0.00        1     0.00    50.00  main
        0.00      0.06     0.00        1     0.00     0.00  memcpy
        0.00      0.06     0.00        1     0.00    10.11  print
        0.00      0.06     0.00        1     0.00     0.00  profil
        0.00      0.06     0.00        1     0.00    50.00  report
      ...
Функции упорядочены по убыванию времени, затраченного на их выполнение. Функции `mcount' и `profil' являются частью аппарата профилирования и появляются в каждом простом профиле; их время несколько увеличивает ожидаемое при профилировании время выполнения.

Период отсчета является оценкой границ возможной ошибки в каждом отсчете времени. Отсчеты времени, ненамного превышающие эту величину, ненадежны. В данном примере поле `собственных секунд' (`self seconds') для `mcount' может отлично получиться и `0.00', и `0.04' при других запусках. *См. Оценка ошибки:: для более полного обсуждения.

Что же означают поля в каждой строке:

`% time' (`% времени')

Это процент от общего времени исполнения вашей программы, затраченный на выполнение этой функции. Сумма по всем строкам должна составлять 100%.

`cumulative seconds' (`секунды нарастающим итогом')

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

`self seconds' (`собственных секунд')

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

`calls' (`вызовов')

Это общее количество вызовов этой функции--сколько раз она была вызвана. Если функция ни разу не вызывалась или количество вызовов не может быть определено (возможно, из-за того, что функция не была откомпилирована для профилирования), то поле `calls' (`вызовов') остается пустым.

`self ms

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

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

`total ms

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

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

`name' (`имя функции')

Это имя функции. Листинг простого профиля упорядочивается по этому полю в алфавитном порядке после упорядочения по полю `self seconds' (`собственных секунд').


Вперед Назад Содержание


Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру