Система Turbo Profiler фирмы Borland

Тут можно читать онлайн Система Turbo Profiler фирмы Borland - бесплатно полную версию книги (целиком) без сокращений. Жанр: Современная проза. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Система Turbo Profiler фирмы Borland краткое содержание

Система Turbo Profiler фирмы Borland - описание и краткое содержание, автор Неизвестный Автор, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Система Turbo Profiler фирмы Borland - читать онлайн бесплатно полную версию (весь текст целиком)

Система Turbo Profiler фирмы Borland - читать книгу онлайн бесплатно, автор Неизвестный Автор
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Функция main снова становится текущей «областью». Каждый такт таймера, во время которого выполняется statement1 или statement2, считается относящимся к «области», задаваемой функцией main.

На этом этапе происходят две вещи:

1. Каждый раз, когда вы попадаете в какую-нибудь «область», профилирование вызывает внутреннюю подпрограмму, которая соответственным образом изменяет значение переменных и состояние стека вызовов подпрограмм. С каждой «областью» связаны две переменных, в одной из этих переменных суммируется время выполнения «области», а в другой — количество обращений к ней. Каждый раз, когда вы попадаете в «область» пройдя через помечающий ее маркер, переменная, равная числу обращений к данной «области» увеличивается.

2. На каждом такте таймера, профилировщик вызывает другую внутреннюю подпрограмму, которая проверяет, какая из «областей» является текущей, затем увеличивает значение переменной, хранящей временные данные для рассматриваемой «области», на соответствующую величину.

Когда выполнение программы заканчивается, система Turbo Profiler, на основании значений переменных, в которых накапливалось число тактов таймера, вычисляет время работы каждой «области».

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

Что же вам делать в случае нескольких операторов return? Ответ на этот вопрос заключается в использовании единственной настоящей точки возврата только в самом конце тела функции.

Важное замечание о точках возврата:

Хотя вы формально и можете задать в функции несколько точек возврата, компилятор Turbo C, на самом деле, преобразует все эти точки в переходы на единственную настоящую точку возврата, расположенную в самом конце функции. При установке маркера «области» на каком-либо операторе возврата на самом деле помеченной оказывается строка ассемблерного кода, соответствующая закрывающей фигурной скобке, которой завершается описание данной функции. Эта строка представляет собой ассемблерный вариант оператора возврата, на который осуществляется переход из всех остальных точек функции, где встречается оператор return.

Для того, чтобы отключить сбор статистических данных для какой-либо функции, необходимо пометить первую строку этой функции маркером «области», отключающим сбор статистических данных, а так же установить маркер, возобновляющий сбор данных, на строке, следующей за вызовом функции.

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

Сбор статистических данных о вызовах подпрограмм.

Активной в данный момент времени подпрограммой считается подпрограмма, находящаяся на вершине стека вызовов, формируемого профилировщиком. В режиме активного анализа (т. е. когда профилировщик собирает информацию о путях вызова, а также другие данные, не связанные с подсчетом времени) система Turbo Profiler создает свой собственный стек вызовов подпрограмм. Этот стек устроен аналогично стеку вызовов любой другой программы, выполняющейся под управлением DOS. Стек, создаваемый профилировщиком, поддерживается совершенно независимо от стека пользовательской программы и используется исключительно для сохранения информации о вызовах подпрограмм, в которых еще не был выполнен оператор возврата.

Для того, чтобы поддерживать стек вызовов подпрограмм в системе Turbo Profiler имеется два типа маркеров «области»:

* маркер «области» типа «точка входа в подпрограмму» (маркер подпрограммы);

* обычный маркер «области» (маркер типа метка)

Когда профилировщик наталкивается на маркер «области» типа «точка входа в подпрограмму», он помещает активную на данный момент подпрограмму на вершину стека активных подпрограмм. Затем встреченный маркер становится маркером активной подпрограммы.

Если теперь мы повстречаем обычный маркер, то это никак не повлияет на статистические данные, собираемые для подпрограммы, выполняющейся в данный момент и на стек активных подпрограмм. Появление обычного маркера означает лишь смену активной «области», т. е. предыдущая активная «область» исключается из рассмотрения.

Статус же текущей активной подпрограммы не меняется до тех пор, пока профилировщик не натолкнется на оператор возврата из данной подпрограммы.

Когда, в процессе выполнения, в теле активной подпрограммы встречается оператор возврата, маркер «области», относящийся к данной подпрограмме, переходит в пассивное состояние.

С верхушки стека активных подпрограмм, поддерживаемого профилировщиком, берется подпрограмма, которая и становится активной до тех пор, пока не будет выполнен оператор возврата, находящийся в ее теле, или не повстречается другой маркер «области» типа «точка входа в подпрограмму».

Таким образом, профилировщик может прослеживать полную предысторию вызовов для каждой помеченной подпрограммы. Если Вы активировали параметр Statistics| Callers (Статистика| Вызывающие подпрограммы) для всех помеченных подпрограмм, то каждый раз при встрече маркера «области», типа «точка входа в подпрограмму», профилировщик полностью сохраняет свой стек вызовов в буфере, связанном с данной подпрограммой.

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

Работа профилировщика со стеком активных подпрограмм, определяется значениями двух параметров, устанавливаемых при помощи команд его меню:

* параметр Statistics| Callers (Статистика| Вызывающие подпрограммы) (может находиться в состоянии Enabled (Включено) или Disabled (Выключено);

* параметр Callers (Вызывающие подпрограммы) для каждой помеченной «области» в окне Areas («Области»).

Более гибкие возможности для контроля путей вызова подпрограмм Вы получаете при использовании локальных меню в окнах Module (Модуль) и Areas («Области»). Вы можете установить для каждой из помеченных «областей» свое собственное значение параметра Callers (Вызывающие подпрограммы). Как команда Callers (Вызывающие подпрограммы) локального меню окна Module (Модуль), так и команда Options (Параметры) локального меню окна Areas («Области») ведут к появлению на экране блока диалога, в котором Вы можете задать одно из следующих значений параметра Callers (Вызывающие подпрограммы): All Callers (Все вызывающие подпрограммы), Immediate Caller (Непосредственно вызывающая подпрограмма) или None (Никакие).

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Неизвестный Автор читать все книги автора по порядку

Неизвестный Автор - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Система Turbo Profiler фирмы Borland отзывы


Отзывы читателей о книге Система Turbo Profiler фирмы Borland, автор: Неизвестный Автор. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x