CodeTools[Profiling] - Maple Programming Help

CodeTools[Profiling]

 load profiling data from a file

 Calling Sequence LoadProfiles(filename, proc1, proc2, ..., opts)

Parameters

 filename - string; file from which to load the profiles proc1, proc2, ... - (optional) procedure opts - equation(s) of the form output=value where value is one of merge or table; specify the type of output

Description

 • The LoadProfiles(filename) command loads the profiling data stored in filename for all the procedures in the file.
 • The LoadProfiles(filename, proc1, proc2, ...) command loads the profiling data stored in filename for the specified procedures, proc1, proc2.
 • By default the profile data is merged into each procedure's profile table.  In this case LoadProfiles does not return anything.  However, you can specify the output = table option which instructs the LoadProfiles function to return a table of the profiling data, similar to the one returned by Build.
 • LoadProfiles performs two checks while loading profile data from file.  If one of these checks fail, the profiling data for that procedure is not loaded and a warning is printed. The first check determines if the name associated with the data being loaded is the name of a procedure.  The second check verifies that the number of rows of data in the file matches the number of statements in the procedure definition.
 • If a procedure appears more than once in the file (as might happen if SaveProfiles is called with 'append'), then the multiple rtables of profiling data are merged.

Examples

 > a := proc(x)     if (x > 1) then         return 1;     else         return 0;     end if; end proc:
 > $\mathrm{with}\left(\mathrm{CodeTools}[\mathrm{Profiling}]\right):$
 > $t≔\mathrm{Build}\left(\mathrm{procs}=a,\mathrm{commands}=\left['a\left(0\right)','a\left(1\right)'\right]\right):$
 > $\mathrm{SaveProfiles}\left("file",a,t\right):$
 > $\mathrm{LoadProfiles}\left("file",a,'\mathrm{output}'='\mathrm{table}'\right)$
 ${\mathrm{table}}\left(\left[{\mathrm{_Inert_ASSIGNEDNAME}}{}\left({"a"}{,}{"PROC"}\right){=}\left[\begin{array}{rrr}{2}& {0}& {6}\\ {2}& {0}& {6}\\ {0}& {0}& {0}\\ {2}& {0}& {0}\end{array}\right]\right]\right)$ (1)
 > $\mathrm{PrintProfiles}\left(a,t\right)$
 a a := proc(x)      |Calls Seconds  Words| PROC |    2   0.000      6|    1 |    2   0.000      6| if 1 < x then    2 |    0   0.000      0|   return 1                             else    3 |    2   0.000      0|   return 0                             end if end proc
 > $\mathrm{SaveProfiles}\left("file",a,t,'\mathrm{append}'\right):$
 > $\mathrm{LoadProfiles}\left("file",a\right)$
 > $\mathrm{PrintProfiles}\left(a\right)$
 a a := proc(x)      |Calls Seconds  Words| PROC |    4   0.000     12|    1 |    4   0.000     12| if 1 < x then    2 |    0   0.000      0|   return 1                             else    3 |    4   0.000      0|   return 0                             end if end proc
 > $\mathrm{FileTools}[\mathrm{Remove}]\left("file"\right)$