Add initial version of retainers heap profile.
authormikhail.naganov@gmail.com <mikhail.naganov@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 16 Sep 2009 13:41:24 +0000 (13:41 +0000)
committermikhail.naganov@gmail.com <mikhail.naganov@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 16 Sep 2009 13:41:24 +0000 (13:41 +0000)
commitabc0bd46f6ebd1f6ea681cc301019da26b692dd6
treecbb42c84ec0e36100f01697617e4293acb6aaaa9
parent40471b41daf343261fe0a515ce936cd15ad7a354
Add initial version of retainers heap profile.

The profile is taken together with constructors profile. In theory, it
should represent a complete heap graph. However, this takes a lot of memory,
so it is reduced to a more compact, but still useful form. Namely:

 - objects are aggregated by their constructors, except for Array and Object
   instances, that are too hetereogeneous;

 - for Arrays and Objects, initially every instance is concerned, but then
   they are grouped together based on their retainer graph paths similarity (e.g.
   if two objects has the same retainer, they are considered equal);

Review URL: http://codereview.chromium.org/200132

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
19 files changed:
src/SConscript
src/heap-profiler.cc [new file with mode: 0644]
src/heap-profiler.h [new file with mode: 0644]
src/heap.cc
src/heap.h
src/log.cc
src/log.h
src/string-stream.cc
src/string-stream.h
test/cctest/SConscript
test/cctest/test-heap-profiler.cc [new file with mode: 0644]
tools/gyp/v8.gyp
tools/v8.xcodeproj/project.pbxproj
tools/visual_studio/v8_base.vcproj
tools/visual_studio/v8_base_arm.vcproj
tools/visual_studio/v8_base_x64.vcproj
tools/visual_studio/v8_cctest.vcproj
tools/visual_studio/v8_cctest_arm.vcproj
tools/visual_studio/v8_cctest_x64.vcproj