[Mono-dev] New profiler is "ready"

Massimiliano Mantione 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 mailing list