Иллюстрированный самоучитель по Matlab

         

Создание итогового отчета


Для создания суммарного отчета о профилировании служит команда profsum, которая используется в нескольких формах:

profsumm — вывод полного отчета о результатах профилирования т-файла. Выводятся данные о времени выполнения для строк, суммарное время выполнения которых составляет 95% от общего времени (если таких строк много, выводятся данные о 10 строках, выполнение которых заняло наибольшее время);

profsumm(FRACTION) — выводит часть отчета для строк, относительное время выполнения которых составляет FRACTION (от 0.0 до 1.0) от общего времени выполнения файла;

profsurmi(N) — выводится отчет по N строкам с максимальным временем выполнения;

profsumm(STR) — выводит отчет только по тем строкам, в которых встречается строковое выражение STR;

profsumm(INFO), profsurmKINFO, FRACTION), profsumm(INFO, N) HprofsummdNFO, STR) -выводят итоговый отчет по строкам, заданным массивом INFO.

Пример применения команды profsumm:

» profile erfcore

» z = erf(0:.01:100):

» profsumm. profile done

Total time in "C:\MATLAB\toolbox\mat1ab

\specfun\erfcore.m": 0.16 seconds

94%

of the total time was spent on lines:

[99 109 108 97 95 94 92 86 71 48]

47:



%

0.01s. 6*48: k = find((abs(x)

> xbreak) & (abs(x) <= 4.)):

49: if -isempty(k)

70: del = (y-z).*(y+z):

0.01s, 6*71: result(k)

= exp(-z.*z) .* exp(-del) .* result(k)

72: end

85: 0.01s.

6%

86:

у

= abs(x(k)):

87: z = 1 ./ (y .* y): 

91: xnum = (xnum + p(i)) .* z:

0.01s, 6*92: xden = (xden + q(i)) .* z:

93: end

0.01s, 6*94: result(k) =

z .* (xnum + p(5)) ./ (xden + q(5)):

0.01s, 6*95: result(k)

= (1/sqrt(pi) - result(k)) ./y:

96: if jint — 2 0.01s,

6%

97;

z

= fix(y*16)/16;

98: del - (y-z).*(y+z):

0.06s. 38*99: result(k) =

exp(-z.*z) .* exp(-del) .* result(k)

100: k - find(~isfinite(result));

107: if jint ==0 

0.01s,

6%

108: k = find(x > xbreak);

0.01s,

6%

109: result(k)=

(0.5 - result(k)) + 0.5;

110: k = find(x < -xbreak);



Содержание раздела