The mysteries of eprof
Ulf Wiger
etxuwig@REDACTED
Thu Feb 24 11:40:18 CET 2000
> From: Scott Lystig Fritchie <scott@REDACTED>
> To: erlang-questions@REDACTED
> 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 <ulf.wiger@REDACTED>
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