profile - Maple Help

Online Help

All Products    Maple    MapleSim


The profile Function

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

profile(procedure1, procedure2, ...)

Parameters

procedure1, procedure2, ...

-

any number of valid Maple procedures that have not already been profiled with profile

Description

• 

The procedure profile alters the given procedures to record runtime information on the procedures. If profile is successful, it returns NULL on exit.

• 

The profiling information is printed using the showprofile() function as shown in the examples below.  For more options and examples see showprofile. To stop collecting profiling information on a function, use unprofile(). To reset the profiler to begin a new profile use resetprofile().

• 

Use of profile() increases memory usage and slows down computations, sometimes dramatically.  In addition, profile may not work properly with procedures that have special evaluation rules.

• 

A closely related function, exprofile(), can be used to profile all Maple functions at once.

Examples

fib:=proc(n) option remember; if n<2 then n else fib(n-1)+fib(n-2) end if; end proc:

profilefib

fib5

5

(1)

showprofilefib

function           depth    calls     time    time%         bytes   bytes%
---------------------------------------------------------------------------
fib                    5        9    0.000     0.00          6288   100.00
---------------------------------------------------------------------------
total:                 5        9    0.000     0.00          6288   100.00

unprofilefib

profilegcd&comma;divide&comma;expand&comma;randpoly

grandpolyx&comma;y&comma;degree=2&comma;dense

g7x2+22xy94y255x+87y56

(2)

aexpandgrandpolyx&comma;y&comma;degree=2&comma;dense&colon;

bexpandgrandpolyx&comma;y&comma;degree=2&comma;dense&colon;

gcda&comma;b

7x222xy+94y2+55x87y+56

(3)

showprofile

function           depth    calls     time    time%         bytes   bytes%
---------------------------------------------------------------------------
gcd                    1        1    0.057    98.28        513608    85.48
randpoly               1        3    0.001     1.72         80744    13.44
expand                 1        8    0.000     0.00          3488     0.58
divide                 1        6    0.000     0.00          3024     0.50
---------------------------------------------------------------------------
total:                 4       18    0.058   100.00        600864   100.00

resetprofile

profilegcd&comma;divide&comma;content

grandpolyx&comma;y&comma;degree=3&comma;dense&colon;

aexpandgrandpolyx&comma;y&comma;degree=7&comma;dense&colon;

bexpandgrandpolyx&comma;y&comma;degree=7&comma;dense&colon;

gcda&comma;b

92x36x2y72xy287y374x237xy44y2+23x29y98

(4)

showprofile

function           depth    calls     time    time%         bytes   bytes%
---------------------------------------------------------------------------
gcd                    1        1    0.006   100.00        241592    98.80
divide                 1        6    0.000     0.00          2928     1.20
content                0        0    0.000     0.00             0     0.00
---------------------------------------------------------------------------
total:                 2        7    0.006   100.00        244520   100.00

See Also

CodeTools,Profile

exprofile

kernelopts

showprofile

unprofile