The OpenNET Project / Index page

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

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

1. Для чего нужно профилирование

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

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

Профилирование состоит из нескольких шагов:

Следующие три раздела объясняют эти шаги более детально.

Результатом анализа является файл, содержащий две таблицы - "Простой профиль" ("flat profile") и "Граф вызовов" ("call graph") (плюс замечания, кратко объясняющие содержимое этих таблиц).

Простой (flat) профиль показывает, сколько времени потратила ваша программа на исполнение каждой функции и сколько раз эта функция вызывалась. Если вам надо просто узнать, какие функции требуют большинства времени, то это устанавливается именно отсюда. *См. Простой профиль::.

Граф вызовов показывает, для каждой функции, какие функции ее вызывали, какие функции вызывала она сама и сколько раз. Также здесь показано, сколько времени было затрачено на выполнение подпрограмм в каждой функции. Это может подсказать вам места, в которых вы можете попытаться исключить вызовы функций, требующих достаточно много времени на выполнение. *См. Граф вызовов::.


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


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

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