Создание итогового отчета
Для создания суммарного отчета о профилировании служит команда 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);