[Mono-list] Profiling web app to find where memory is going

Joshua Tauberer tauberer at for.net
Sun Jan 8 21:36:58 EST 2006


Christopher Bergström wrote:
> Can you give the 30 second version of how to hook this up to my web 
> app?  I'm going to guess just put runprof in my path and change that out 
> for mono and  add a syslog entry it looks like?  If you have any patches 
> for the multithreading please attach or email to me.. Great work!

Yeah.  Attached is my modified version of profx.c.  A diff would be 
about the same size.  It takes care of the threading issue (using the 
pthreads version of a thread local variable -- hopefully that's the 
right way to do it), the output is changed a bit, and it writes out a 
report to /tmp/profile.txt every 15 seconds (if there have been 
allocations).

The report includes the types accounting for at least 5% of the memory 
allocated (not counting anything deallocated), and the methods 
accounting for at least 5% of the allocations of each type.

To build, run make as before.  Put libmono-profiler-x.so and runprof 
(revised attached) in your website directory, and then run runprof. 
Besides the 15 second reports, the report is printed to stdout when xsp 
ends gracefully.

I'll get it committed somewhere eventually.

-- 
- Joshua Tauberer

http://taubz.for.net

** Nothing Unreal Exists **


-------------- next part --------------
A non-text attachment was scrubbed...
Name: profx.c
Type: text/x-csrc
Size: 9860 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-list/attachments/20060108/07c60413/profx.bin
-------------- next part --------------
#!/bin/sh

DIR=`dirname $0`
export LD_LIBRARY_PATH=$DIR
mono --profile=x /usr/lib/xsp/1.0/xsp.exe "$@"


More information about the Mono-list mailing list