The mysteries of eprof

Ulf Wiger <>
Thu Feb 24 11:40:18 CET 2000


> From: Scott Lystig Fritchie <>
> To: 
> Subject: The mysteries of eprof
> Date: Thu, 24 Feb 2000 03:06:02 -0600
> 
> Good morning.  I hope this message is coherent: it's been a long
> day.(*)
> 
> I've been fiddling a lot with eprof, trying to plumb its secrets.
> It's difficult to get used to, because it definitely isn't "gprof".
> Dealing strictly with wall-clock times is, well, difficult.  I suppose
> the ideal tool would be able to count the CPU time consumed by the
> reductions made by a function *and* the CPU time consumed by BIFs
> *and* somehow account for CPU time consumed by scheduling, driver
> overhead, etc.  Oh, and while I'm dreaming, we might as well sum all
> the time consumed by function F plus all the functions F calls.  :-)

I'm not going to try to answer your eprof questions other than 
noting that we at AXD 301 don't use it. We write our own trace 
programs using the trace() BIF directly.

We believe that we can get better profiling from our own programs
since they are written with knowledge of our application.

In short:

- to find out how much CPU time a certain process is using,
  use trace flags [running, timestamp]
  You will then see when the process is scheduled in/out, and will
  be able to sum up the CPU time used for the process.
  It will also give you a feeling for where it spends most of its
  time.

- to find which processes are using up memory, you can trace on
  [garbage_collection, procs, timestamp, set_on_spawn]
  And write a little program that logs garbage collections.

/Uffe

Ulf Wiger, Chief Designer AXD 301         <>
Ericsson Telecom AB                          tfn: +46  8 719 81 95
Varuvägen 9, Älvsjö                          mob: +46 70 519 81 95
S-126 25 Stockholm, Sweden                   fax: +46  8 719 43 44




More information about the erlang-questions mailing list