[Mono-dev] New profiler is "ready"
massi at ximian.com
Thu Mar 27 06:26:59 EDT 2008
the new logging profiler is now usable on Linux, and I'd like
some feedback and bug reports.
It is described here:
and in the mono.1 man page in svn.
Open issues (for now):
- The default name of the output file should contain the
application name, and not just be "profiler-log.prof".
- The allocation profiler still attributes object creations
to wrappers instead of the caller method.
- I should check why the decoder is not properly installed
and also change its name to something more usable.
- The statistical profiler tries to get the names of
unmanaged functions using dladdr, but if this fails, it
has an "oprofile like" behavior: it saves the IP value
and at *decoding* time examines the elf files (using nm)
looking for the symbol name.
This is a bit sophisticated (it looks at all the memory
regions of the process using /proc/self/maps at run time
so that the correct file is examined at decoding time), and
works fairly well (better than dladdr).
However, this is fragile: if the decoding time happens
when some of the relevant elf files has changed, the info
is lost and the data in the log file is useless (and there
is no warning of this).
I am moving code from the decoder to the profiler, so that
the symbols are all looked up at runtime, but this code is
not ready yet.
- The heap analysis features technically work, but are not
yet exposed to the user by the decoder program.
That's it... have fun :-)
More information about the Mono-devel-list