[Profiler] Add a new profiler module to track GCHandle allocations
authorAlan McGovern <alan.mcgovern@gmail.com>
Thu, 31 Mar 2011 15:24:36 +0000 (16:24 +0100)
committerAlan McGovern <alan.mcgovern@gmail.com>
Tue, 31 Jan 2012 17:37:33 +0000 (17:37 +0000)
commita5e3e50512b24064d7df3bdc4b9c4c1afe574580
treeaeb110827b587304b95396d39061be8de4ce49ad
parent4871d61dff35b4cc300f5455d0aa1fdef1258ba2
[Profiler] Add a new profiler module to track GCHandle allocations

This profiler was initially developed for Moonlight to diagnose and
fix issues where objects were never being GC'ed due to gchandles
being attached to objects and not freed. This profiler is just as
useful for other frameworks which rely on GCHandles to provide memory
management facilities such as gtk-sharp.

The aim of this profiler is to allow you to easily see how many instances
of each class are being kept alive by GCHandles and also the stacktrace
from where the GCHandle was allocated.

The profiler also tracks when instance delegates are passed to/from native
code as this can be a severe performance hit if it is done frequently.

Conflicts:

mono/profiler/Makefile.am
mono/profiler/Makefile.am
mono/profiler/gchandle-profiler.c [new file with mode: 0644]
mono/profiler/gchandle-profiler.h [new file with mode: 0644]