Система Turbo Profiler фирмы Borland | страница 35




Если Вы подозреваете, что возникла подобная ситуация с наложением частот, то измените значение параметра Statistics|

Profiling Options| Clock speed value (Статистика| Параметры профилирования| Скорость работы часов) и сравните профиль, полученный после внесения этого изменения, с предыдущим профилем.


Использование памяти профилировщиком.


На следующем рисунке показано распределение памяти при получении профиля программы с помощью системы Turbo Profiler.


Рис. 2.2 Карта памяти системы Turbo Profiler.


Для запоминания информации об «областях» профилировщик использует динамически-распределяемую область памяти (far heap).

Если Вы, в процессе выполнения программы, добавите новые «области», то эта, динамически-распределяемая область памяти, может распространиться на ту часть памяти, которая зарезервирована для программы пользователя, для того, чтобы разместить в ней новые переменные «областей» и буферы. Поэтому, если Вы вносите изменения в разметку «областей» во время выполнения программы, Вам необходимо повторно запустить программу с помощью Run| Program Reset (Выполнение| Повторное выполнение программы). Если Вы этого не сделаете, то результаты профилирования будут совершенно непредсказуемы, Ваш компьютер может просто «зависнуть».

Глава 3. Стратегии профилирования

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

Если Вы поначалу не уверены в своих предположениях о том, какие из участков Вашей программы являются ее «узкими местами», то, при помощи системы Turbo Profiler, получите ее профиль с теми значениями параметров профилирования, которые установлены по умолчанию. После этого, посмотрев на результаты профилирования, появившиеся в окне Execution Profile (Профиль выполнения), Вы получите представление о том, какие из подпрограмм Вашей программы потребляют большую часть времени ее выполнения. Сопоставив временные и количественные данные, Вы поймете какие участки Вашей программы наиболее дорогостоящи в смысле времени, затрачиваемого на одно выполнение. Вооруженные этими знаниями, Вы можете смело начинать атаку неэффективных участков Вашей программы.