Система Turbo Profiler фирмы Borland - Автор неизвестен 10 стр.


3. Выберите Counts (Подсчет) в графе Display (Изображение) в рассматриваемом блоке диалога. (Сделайте это при помощи мыши, или используя клавиши управления курсором перейдите к этому пункту и нажмите клавишу ENTER, того же самого результата можно достичь простым нажатием клавиши С.)

4. Выберите ОК (или нажмите ENTER).

Теперь окно Execution Profile (Профиль выполнения) показывает не временную, а количественную статистику выполнения программы PRIME0, как показано на следующем рисунке.

Рис. 1.4 Количественная статистика в окне профиля программы:.

Эти изображенные на экране данные говорят о том, что наиболее часто в программе PRIME0 выполняется строка 22. (Соответствующая строка в программе PRIME0PA имеет номер 31.)

При желании Вы можете посмотреть количественную и временную статистику одновременно. Для этого нужно снова вызвать блок диалога Display Options (Параметры изображения) (нажав для этого Alt-F10 и выбрав Display (Изображение) или нажав Ctrl-D).

Выберите Both («И то, и другое») в столбце Display (Изображение), затем выберите ОК или нажмите ENTER. (Для того, чтобы это сделать надо выбрать Both («И то, и другое») при помощи мыши, или перейти к Both («И то, и другое») при помощи клавиш управления курсором и нажать ENTER, также можно просто нажать клавишу В).

Теперь окно Execution Profile (Профиль выполнения) выглядит следующим образом:

Рис. 1.5 Временная и количественная статистика в окне Execution Profile (Профиль выполнения).

Если в окне Execution Profile (Профиль выполнения) временная и количественная статистика изображаются одновременно, то для каждой помеченной «области» первое число, относящееся к этой «области» — это количество выполнений данной «области», а второе число — это время, затраченное на выполнение данной «области». Рисунок 1.5 показывает, что «область» PRIME0#22 (строка 22 в программе PRIME0) выполнялась 15 122 раза, что заняло в общей сложности 0.31 секунды.

Печать текстов программ и статистики.

В этом разделе Вы научитесь печатать две вещи:

1. Листинг исходного текста профилируемой программы, находящейся в окне Module (Модуль) с количественной и временной статистикой, сопровождающей каждую помеченную «область».

2. Статистику профилирования, изображенную в окне Execution Profile (Профиль выполнения).

Печать листинга профилируемой программы.

Перед тем как вывести в файл листинг профилируемой программы, содержащий временную и количественную статистику, Вы должны задать соответствующие параметры печати:

1. Выберите команду Print|Options (Печать|Параметры).

2. В блоке диалога Printing Options (Параметры печати) выберите селективную кнопку File (Файл) для этого нажимайте TAB до тех пор пока не активируются селективные кнопки, затем, при помощи клавиши «стрелка вниз», выберите параметр File (Файл)).

3. При помощи клавиши TAB активируйте блок ввода Destination File (Файл назначения) и наберите на клавиатуре PRIME0SC.LST

4. Выберите ASCII для того чтобы пользоваться стандартной кодировкой ASCII, а не расширенным набором символов IBM.

5. Выберите ОК или нажмите (ENTER).

Теперь курсор находится в активном окне Execution Profile (Профиль выполнения).

Для того, чтобы вывести листинг в файл выберите в меню команду Print|Module (Напечатать|Модуль). В блоке диалога PIck a Module (Выбрать модуль) при помощи клавиши «стрелка вниз» выберите название модуля PRIME0, затем нажмите ENTER (или выберите ОК).

Вы можете выйти в DOS (не выходя из системы Turbo Profiler), чтобы просмотреть файл PRIME0SC.LST, который должен быть выведен в текущую директорию. Выберите в меню команду File|Dos shell (Файл|Оболочка DOS) и наберите на клавиатуре

TYPE PRIME0SC.LST.

Если Вы профилируете программу PRIME0, написанную на Turbo C, Вы должны увидеть на экране следующее:

/* Copyright (c) 1990, Borland International */

/* Программа генерации простых чисел при помощи алгоритма Эвклида */

int primes[1000];

#define MAXPRIMES 1000

main()

{

int j;

int lastprime, curprime;

primes[0] = 2;

primes[1] = 3;

lastprime = 1;

curprime = 3;

printf(«prime %d = %d\n», 0, primes[0]);

printf(«prime %d = %d\n», 1, primes[1]);

while(curprime < MAXPRIMES)

{

for(j = 0; j <= lastprime; j++)

if((curprime % primes[j]) == 0)

Назад Дальше