Mercurial > hg > octave-lyh
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 |
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 |