An execution profiler
for Mathematica programs is presented. For any specified set of
functions, the profiler can record the number of times the functions were
called, the total amount of time spent in each, and how that time was
partitioned among the head, arguments and body. It can also display a call tree
that shows where each function was called and by whom.