Nyquist / XLISP 2.0  -  Contents | Tutorials | Examples | Reference

profile


Type:   -   function (subr)
Source:   -   xlsys.c, xleval.c

Syntax

(profile flag) - turn profiling on or off
flag - NIL turns profiling off, otherwise on
returns - the previous state of profiling

Description

The Xlisp 2.0 release has been extended with a profiling facility, which counts how many times and where eval is executed. A separate count is maintained for each named function, closure, or macro, and a count indicates an eval in the immediately [lexically] enclosing named function, closure, or macro. Thus, the count gives an indication of the amount of time spent in a function, not counting nested function calls.

The list of all functions executed is maintained on the global *profile* variable. These functions in turn have *profile* properties, which maintain the counts. The profile system merely increments counters and puts symbols on the *profile* list. It is up to the user to initialize data and gather results. Profiling is turned on or off with the 'profile' function.

Unfortunately, methods cannot be profiled with this facility.

Examples


  Back to top


Nyquist / XLISP 2.0  -  Contents | Tutorials | Examples | Reference