CodeTools[Profiling] - Maple Help

# Online Help

###### All Products    Maple    MapleSim

Home : Support : Online Help : Programming : Profiling : CodeTools[Profiling] : CodeTools/Profiling/Profile

CodeTools[Profiling]

 Profile
 enable collection profiling information

 Calling Sequence Profile(proc1, proc2, ...) Profile([proc1, tab1], [proc2, tab1], ...)

Parameters

 proc1, proc2, ... - (optional) procedures to be profiled tab1, tab2, ... - (optional) rtable of profiling data

Description

 • The Profile() command collects profiling data for all currently named procedures and all procedures read from a repository for Maple procedures.
 • The Profile(proc1, proc2, ...) command collects profiling data for all specified procedures.
 • The Profile([proc1, tab1], [proc2, tab2], ...) command has a length two list, whose first element is a procedure and second element is an rtable.  Profiling is enabled for each procedure with the profiling data specified in the rtable as its initial value.  The rtable should be obtained by a call to GetProfileTable on the procedure.
 • The procedures that are already profiled are not modified by a call to Profile.
 • To stop profiling, use the UnProfile function.

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):$
 > $\mathrm{Profile}\left(a\right)$
 > $a\left(2\right)$
 ${1}$ (1)
 > $a\left(0\right)$
 ${0}$ (2)
 > $\mathrm{PrintProfiles}\left(a\right)$
 a a := proc(x)      |Calls Seconds  Words| PROC |    2   0.000      6|    1 |    2   0.000      6| if 1 < x then    2 |    1   0.000      0|   return 1                             else    3 |    1   0.000      0|   return 0                             end if end proc
 > $t≔\mathrm{GetProfileTable}\left(a\right):$
 > $\mathrm{UnProfile}\left(a\right)$
 > $\mathrm{PrintProfiles}\left(a\right)$
 > $\mathrm{Profile}\left(\left[a,t\right]\right)$
 > $\mathrm{PrintProfiles}\left(a\right)$
 a a := proc(x)      |Calls Seconds  Words| PROC |    2   0.000      6|    1 |    2   0.000      6| if 1 < x then    2 |    1   0.000      0|   return 1                             else    3 |    1   0.000      0|   return 0                             end if end proc
 > $a\left(3\right)$
 ${1}$ (3)
 > $\mathrm{PrintProfiles}\left(a\right)$
 a a := proc(x)      |Calls Seconds  Words| PROC |    3   0.000      9|    1 |    3   0.000      9| if 1 < x then    2 |    2   0.000      0|   return 1                             else    3 |    1   0.000      0|   return 0                             end if end proc

## Was this information helpful?

 Please add your Comment (Optional) E-mail Address (Optional) What is ? This question helps us to combat spam