Система Turbo Profiler фирмы Borland | страница 37
Примечание: Мы рекомендуем Вам сохранять результаты профилирования, получение которых заняло много времени, на тот случай, если у Вас вдруг возникнет желание снова взглянуть на эти данные.
Подготовка к получению профиля.
Примеры первой главы были небольшими и достаточно простыми, они были созданы для того, чтобы в общих чертах показать процесс профилирования. Основной задачей, поставленной в первой главе было скорее совершенствование программы prime, чем поиск «узких мест» данной программы.
На самом же деле необходимость использования профилировщика возникает в гораздо большей степени при написании программ большого размера, чем в случае, когда программы малы, так как сначала необходимо выявить «узкие места» программы, а уже потом пытаться понять то, каким образом можно усовершенствовать каждое из них. Вследствие ряда причин найти «узкие места» легче, чем придумать как с ними лучше поступить.
Перед тем, как профилировать Вашу программу, преобразуйте ее исходный текст для того, чтобы извлечь максимальную пользу из полученных статистических данных. Скомпилируйте Вашу программу (независимо от того внесли Вы в нее какие-либо изменения или нет) в режиме с включенной отладочной информацией. Затем установите маркеры, которые укажут профилировщику в каких местах и какие данные собирать.
Преобразование текста Вашей программы.
Первое, что вам необходимо сделать — это привести вашу программу к такому виду, который позволит вам понять, какие именно данные вам необходимо получить в результате профилирования. Например, если вы разрабатываете интерактивную программу, в которой часто происходит выполнение операторов ввода с клавиатуры, то вам совсем неинтересно будет узнать о том, что большая часть времени выполнения вашей программы тратиться на ожидание того момента, когда пользователь нажмет на какую-либо клавишу.
Вот некоторые основные технические приемы, используемые при поиске «узких мест» в больших программах:
* Задавайте вашим программам достаточно большие наборы входных данных, для получения наиболее информативных профилей.
Если вы попытаетесь профилировать программу поиска подстрок, подавая ей на вход файл, состоящий из трех строчек, то вы не сможете почерпнуть многого из полученных в результате этого данных. Точно также поиск коротких подстрок, входящих почти в каждую из строк файла (с общим числом строк равным 10000), даст профиль совершенно непохожий на тот, который получился бы в случае поиска длинной подстроки, встречающейся в данном файле один единственный раз.