annotate scripts/general/profile.m @ 14237:11949c9795a0

Revamp %!demos in m-files to use Octave coding conventions on spacing, etc. Add clf() to all demos using plot features to get reproducibility. Use 64 as input to all colormaps (jet (64)) to get reproducibility. * bicubic.m, cell2mat.m, celldisp.m, cplxpair.m, interp1.m, interp2.m, interpft.m, interpn.m, profile.m, profshow.m, convhull.m, delaunay.m, griddata.m, inpolygon.m, voronoi.m, autumn.m, bone.m, contrast.m, cool.m, copper.m, flag.m, gmap40.m, gray.m, hot.m, hsv.m, image.m, imshow.m, jet.m, ocean.m, pink.m, prism.m, rainbow.m, spring.m, summer.m, white.m, winter.m, condest.m, onenormest.m, axis.m, clabel.m, colorbar.m, comet.m, comet3.m, compass.m, contour.m, contour3.m, contourf.m, cylinder.m, daspect.m, ellipsoid.m, errorbar.m, ezcontour.m, ezcontourf.m, ezmesh.m, ezmeshc.m, ezplot.m, ezplot3.m, ezpolar.m, ezsurf.m, ezsurfc.m, feather.m, fill.m, fplot.m, grid.m, hold.m, isosurface.m, legend.m, loglog.m, loglogerr.m, pareto.m, patch.m, pbaspect.m, pcolor.m, pie.m, pie3.m, plot3.m, plotmatrix.m, plotyy.m, polar.m, quiver.m, quiver3.m, rectangle.m, refreshdata.m, ribbon.m, rose.m, scatter.m, scatter3.m, semilogx.m, semilogxerr.m, semilogy.m, semilogyerr.m, shading.m, slice.m, sombrero.m, stairs.m, stem.m, stem3.m, subplot.m, surf.m, surfc.m, surfl.m, surfnorm.m, text.m, title.m, trimesh.m, triplot.m, trisurf.m, uigetdir.m, uigetfile.m, uimenu.m, uiputfile.m, waitbar.m, xlim.m, ylim.m, zlim.m, mkpp.m, pchip.m, polyaffine.m, spline.m, bicgstab.m, cgs.m, gplot.m, pcg.m, pcr.m, treeplot.m, strtok.m, demo.m, example.m, rundemos.m, speed.m, test.m, calendar.m, datestr.m, datetick.m, weekday.m: Revamp %!demos to use Octave coding conventions on spacing, etc.
author Rik <octave@nomad.inbox5.com>
date Fri, 20 Jan 2012 12:59:53 -0800
parents 72c96de7a403
children 7277fe922e99
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14138
72c96de7a403 maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents: 13929
diff changeset
1 ## Copyright (C) 2012 Daniel Kraft
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
2 ##
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
3 ## This file is part of Octave.
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
4 ##
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
8 ## your option) any later version.
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
9 ##
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
13 ## General Public License for more details.
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
14 ##
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
17 ## <http://www.gnu.org/licenses/>.
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
18
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
19 ## -*- texinfo -*-
13929
9cae456085c2 Grammarcheck of documentation before 3.6.0 release.
Rik <octave@nomad.inbox5.com>
parents: 13201
diff changeset
20 ## @deftypefn {Command} {} profile on
9cae456085c2 Grammarcheck of documentation before 3.6.0 release.
Rik <octave@nomad.inbox5.com>
parents: 13201
diff changeset
21 ## @deftypefnx {Command} {} profile off
9cae456085c2 Grammarcheck of documentation before 3.6.0 release.
Rik <octave@nomad.inbox5.com>
parents: 13201
diff changeset
22 ## @deftypefnx {Command} {} profile resume
9cae456085c2 Grammarcheck of documentation before 3.6.0 release.
Rik <octave@nomad.inbox5.com>
parents: 13201
diff changeset
23 ## @deftypefnx {Command} {} profile clear
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
24 ## @deftypefnx {Function File} {@var{S} =} profile ('status')
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
25 ## @deftypefnx {Function File} {@var{T} =} profile ('info')
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
26 ## Control the built-in profiler.
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
27 ##
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
28 ## @table @code
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
29 ## @item profile on
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
30 ## Start the profiler, clearing all previously collected data if there
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
31 ## is any.
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
32 ##
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
33 ## @item profile off
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
34 ## Stop profiling. The collected data can later be retrieved and examined
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
35 ## with calls like @code{S = profile ('info')}.
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
36 ##
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
37 ## @item profile clear
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
38 ## Clear all collected profiler data.
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
39 ##
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
40 ## @item profile resume
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
41 ## Restart profiling without cleaning up the old data and instead
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
42 ## all newly collected statistics are added to the already existing ones.
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
43 ##
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
44 ## @item @var{S} = profile ('status')
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
45 ## Return a structure filled with certain information about the current status
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
46 ## of the profiler. At the moment, the only field is @code{ProfilerStatus}
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
47 ## which is either 'on' or 'off'.
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
48 ##
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
49 ## @item @var{T} = profile ('info')
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
50 ## Return the collected profiling statistics in the structure @var{T}.
12961
8c64cc024e8c Make hierarchical profile available via profile('info').
Daniel Kraft <d@domob.eu>
parents: 12955
diff changeset
51 ## The flat profile is returned in the field @code{FunctionTable} which is an
8c64cc024e8c Make hierarchical profile available via profile('info').
Daniel Kraft <d@domob.eu>
parents: 12955
diff changeset
52 ## array of structures, each entry corresponding to a function which was called
8c64cc024e8c Make hierarchical profile available via profile('info').
Daniel Kraft <d@domob.eu>
parents: 12955
diff changeset
53 ## and for which profiling statistics are present. Furthermore, the field
8c64cc024e8c Make hierarchical profile available via profile('info').
Daniel Kraft <d@domob.eu>
parents: 12955
diff changeset
54 ## @code{Hierarchical} contains the hierarchical call-tree. Each node
8c64cc024e8c Make hierarchical profile available via profile('info').
Daniel Kraft <d@domob.eu>
parents: 12955
diff changeset
55 ## has an index into the @code{FunctionTable} identifying the function it
8c64cc024e8c Make hierarchical profile available via profile('info').
Daniel Kraft <d@domob.eu>
parents: 12955
diff changeset
56 ## corresponds to as well as data fields for number of calls and time spent
8c64cc024e8c Make hierarchical profile available via profile('info').
Daniel Kraft <d@domob.eu>
parents: 12955
diff changeset
57 ## at this level in the call-tree.
13191
c5ddb99ff5de Put @seealso in profiler functions' docstrings.
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 13053
diff changeset
58 ## @seealso{profshow, profexplore}
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
59 ## @end table
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
60 ## @end deftypefn
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
61
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
62 ## Built-in profiler.
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
63 ## Author: Daniel Kraft <d@domob.eu>
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
64
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
65 function retval = profile (option)
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
66
12872
031e1a2c26f3 Vectorize and use Octave coding conventions for profile script files
Rik <octave@nomad.inbox5.com>
parents: 12871
diff changeset
67 if (nargin != 1)
031e1a2c26f3 Vectorize and use Octave coding conventions for profile script files
Rik <octave@nomad.inbox5.com>
parents: 12871
diff changeset
68 print_usage ();
031e1a2c26f3 Vectorize and use Octave coding conventions for profile script files
Rik <octave@nomad.inbox5.com>
parents: 12871
diff changeset
69 endif
031e1a2c26f3 Vectorize and use Octave coding conventions for profile script files
Rik <octave@nomad.inbox5.com>
parents: 12871
diff changeset
70
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
71 switch (option)
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
72 case "on"
12955
05941540287c Style fixes on profiler internal functions
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 12872
diff changeset
73 __profiler_reset__ ();
05941540287c Style fixes on profiler internal functions
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 12872
diff changeset
74 __profiler_enable__ (true);
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
75
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
76 case "off"
12955
05941540287c Style fixes on profiler internal functions
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 12872
diff changeset
77 __profiler_enable__ (false);
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
78
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
79 case "clear"
12955
05941540287c Style fixes on profiler internal functions
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 12872
diff changeset
80 __profiler_reset__ ();
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
81
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
82 case "resume"
12955
05941540287c Style fixes on profiler internal functions
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 12872
diff changeset
83 __profiler_enable__ (true);
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
84
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
85 case "status"
12955
05941540287c Style fixes on profiler internal functions
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 12872
diff changeset
86 enabled = __profiler_enable__ ();
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
87 if (enabled)
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
88 enabled = "on";
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
89 else
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
90 enabled = "off";
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
91 endif
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
92 retval = struct ("ProfilerStatus", enabled);
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
93
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
94 case "info"
12961
8c64cc024e8c Make hierarchical profile available via profile('info').
Daniel Kraft <d@domob.eu>
parents: 12955
diff changeset
95 [flat, tree] = __profiler_data__ ();
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
96 retval = struct ("FunctionTable", flat, "Hierarchical", tree);
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
97
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
98 otherwise
12872
031e1a2c26f3 Vectorize and use Octave coding conventions for profile script files
Rik <octave@nomad.inbox5.com>
parents: 12871
diff changeset
99 warning ("profile: Unrecognized option '%s'", option);
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
100 print_usage ();
12872
031e1a2c26f3 Vectorize and use Octave coding conventions for profile script files
Rik <octave@nomad.inbox5.com>
parents: 12871
diff changeset
101
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
102 endswitch
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
103
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
104 endfunction
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
105
12872
031e1a2c26f3 Vectorize and use Octave coding conventions for profile script files
Rik <octave@nomad.inbox5.com>
parents: 12871
diff changeset
106
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
107 %!demo
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
108 %! profile on;
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
109 %! A = rand (100);
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
110 %! B = expm (A);
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
111 %! profile off;
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
112 %! profile resume;
12869
de9a9719e594 Extend data collection in profiler and add user-interface profile function.
Daniel Kraft <d@domob.eu>
parents:
diff changeset
113 %! C = sqrtm (A);
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
114 %! profile off;
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
115 %! T = profile ("info");
12871
23377c46516b Implement the profshow function to print profiler results.
Daniel Kraft <d@domob.eu>
parents: 12869
diff changeset
116 %! profshow (T);
13053
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
117
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
118 %!test
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
119 %! on_struct.ProfilerStatus = "on";
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
120 %! off_struct.ProfilerStatus = "off";
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
121 %! profile ("on");
13053
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
122 %! result = logm (rand (200) + 10 * eye (200));
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
123 %! assert (profile ("status"), on_struct);
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
124 %! profile ("off");
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
125 %! assert (profile ("status"), off_struct);
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
126 %! profile ("resume");
13053
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
127 %! result = logm (rand (200) + 10 * eye (200));
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
128 %! profile ("off");
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
129 %! assert (profile ("status"), off_struct);
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
130 %! info = profile ("info");
13053
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
131 %! assert (isstruct (info));
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
132 %! assert (size (info), [1, 1]);
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
133 %! assert (fieldnames (info), {"FunctionTable"; "Hierarchical"});
13053
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
134 %! ftbl = info.FunctionTable;
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
135 %! assert (fieldnames (ftbl), {"FunctionName"; "TotalTime"; "NumCalls"; "IsRecursive"; "Parents"; "Children"});
13053
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
136 %! hier = info.Hierarchical;
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
137 %! assert (fieldnames (hier), {"Index"; "SelfTime"; "TotalTime"; "NumCalls"; "Children"});
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
138 %! profile ("clear");
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
139 %! info = profile ("info");
13053
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
140 %! assert (isstruct (info));
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
141 %! assert (size (info), [1, 1]);
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
142 %! assert (fieldnames (info), {"FunctionTable"; "Hierarchical"});
13053
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
143 %! ftbl = info.FunctionTable;
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
144 %! assert (size (ftbl), [0, 1]);
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
145 %! assert (fieldnames (ftbl), {"FunctionName"; "TotalTime"; "NumCalls"; "IsRecursive"; "Parents"; "Children"});
13053
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
146 %! hier = info.Hierarchical;
a7e82bdf12b3 codesprint: tests for profile.m
John W. Eaton <jwe@octave.org>
parents: 12961
diff changeset
147 %! assert (size (hier), [0, 1]);
14237
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
148 %! assert (fieldnames (hier), {"Index"; "SelfTime"; "NumCalls"; "Children"});
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
149
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
150 %% Test input validation
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
151 %!error profile ()
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
152 %!error profile ("on", 2)
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
153 %!error profile ("INVALID_OPTION");
11949c9795a0 Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
154