- 06 Dec, 2011 1 commit
-
-
mikhail.naganov@gmail.com authored
[Fixed the bug revealed by the Win32 bot] Several changes to better organize snapshot data: 1. Provide information about weak references. 2. Group (GC roots) children. 3. Prettify debug snapshot printing. BUG=v8:1832 TEST=cctest/test-heap-profiler/*Weak* TBR=vitalyr@chromium.org Initial CL: http://codereview.chromium.org/8716009 Review URL: http://codereview.chromium.org/8822019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Dec, 2011 2 commits
-
-
mikhail.naganov@gmail.com authored
Heap profiler tests fail on Win32, need to investigate. This reverts commit b5374ebd92c11ac4aae16b4e31e54166d406e490. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
Several changes to better organize snapshot data: 1. Provide information about weak references. 2. Group (GC roots) children. 3. Prettify debug snapshot printing. BUG=v8:1832 TEST=cctest/test-heap-profiler/*Weak* Review URL: http://codereview.chromium.org/8716009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Sep, 2011 1 commit
-
-
mikhail.naganov@gmail.com authored
This allows getting a heap object by a heap snapshot node for further inspection. Very useful for objects from bindings that mostly have getter-provided fields. R=vegorov@google.com BUG=webkit/61179 TEST=test-heap-profiler/GetHeapValue,GetHeapValueForDeletedObject Review URL: http://codereview.chromium.org/8046006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jun, 2011 1 commit
-
-
mikhail.naganov@gmail.com authored
2000 LOC are gone! R=sgjesse@chromium.org BUG=1481 Review URL: http://codereview.chromium.org/7247018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Jun, 2011 1 commit
-
-
mikhail.naganov@gmail.com authored
This is a preparation for removing aggregated heap snapshots. W/o this API, counting object instances in a snapshot is very hard. R=sgjesse@chromium.org BUG=1481 TEST=cctest/test-heap-profiler/NodesIteration Review URL: http://codereview.chromium.org/7204040 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 May, 2011 1 commit
-
-
mikhail.naganov@gmail.com authored
Patch by Nicolas Kaiser <nikai@nikai.net> R=sgjesse@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org/7030008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Mar, 2011 1 commit
-
-
mikhail.naganov@gmail.com authored
Diffs and retaining paths are implemented on JS side. There is no need to maintain native implementation. R=vitalyr@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org/6770009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Mar, 2011 1 commit
-
-
mikhail.naganov@gmail.com authored
R=vitalyr@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org/6685084 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Mar, 2011 1 commit
-
-
mikhail.naganov@gmail.com authored
objects retained by object groups and global handles. This information is then used during heap snapshot generation to provide a more complete memory picture. This patch will be needed to fix https://bugs.webkit.org/show_bug.cgi?id=53659. Review URL: http://codereview.chromium.org/6626043 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Dec, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
As taking a snapshot of a large heap takes noticeable time, it's good to be able to monitor and control it. The change itself is small, big code deletes and additions are in fact moves. The only significant change is simplification of approximated retained sizes calculation algorithm. Review URL: http://codereview.chromium.org/5687003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Dec, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
TEST=cctest/test-heap-profiler/HeapSnapshotGetNodeById Review URL: http://codereview.chromium.org/5537001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Nov, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
Approximation is done by building a dominators tree for the heap graph. Dominator nodes and retained sizes are serialized into JSON. Removed: - reachable size (it is useless, after all); - HeapEntryCalculatedData (size is now stored in the node, retaining paths in a hash map); Review URL: http://codereview.chromium.org/5154007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Nov, 2010 2 commits
-
-
mikhail.naganov@gmail.com authored
TBR=sgjesse@chromium.org Review URL: http://codereview.chromium.org/5198003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
Otherwise, retaned memory sizes are not precise. This increases size of heap snapshot, I will deal with this later. Heap objects and references previously missing in snapshot are now marked as 'hidden'. That means, they not shown to user, but participate in sizes calculation. Other small changes: - added 'shortcut' graph edges: e.g. to pin global objects on top level; - meta-information in JSON snapshot is no more double encoded. Review URL: http://codereview.chromium.org/5139002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Oct, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
HeapNumbers do consume memory, so it's worth dumping them. However, we don't dump their values, as they are not as self-descriptive as values of strings, and they will increase snapshot size. Storing heap numbers values can be added if we will feel a sufficient demand for that. InternalFields are used, e.g. for storing references to DOM nodes event handlers. Review URL: http://codereview.chromium.org/3769007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Oct, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
I created a heap snapshot in Chromium, and then started comparing it side-by-side with representations of objects provided by the debugger, fixing discrepancies. Review URL: http://codereview.chromium.org/3590029 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Sep, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
to avoid storing serialized snapshot on VM, instead it is emitted using output stream interface. The size of JSON emitted is roughly equal to used heap size (when stored as an ASCII string). Now a whole heap snapshot can be serialized and transmitted outside VM. This makes possible: - implementing non-async UI for heap snapshots inspection; - storing heap snapshots for further inspection; - remote profiling (we can even implement a snapshotting mode where a snapshot isn't even stored in VM, only transmitted -- good for mobile devices); - creating tools for outside heap snapshots processing, e.g. converting to HPROF. Review URL: http://codereview.chromium.org/3311028 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Aug, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
This is intended for smoother migration to the new API in Chromium. Also, aggregated heap snapshots can be used for cheaply obtaining heap statistics, e.g. in tests. Review URL: http://codereview.chromium.org/3124024 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Aug, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
The size of a snapshot is now 65-80% of the JS heap size (tested on GMail and Wave), previously it was >200%. BUG=783 Review URL: http://codereview.chromium.org/3060008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Jul, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
To trace objects between snapshots, an external map of object tags is maintained. After the first heap snapshot has been taken, the map is updated by reporting object moves from the GC. If no snapshots were taken, there is no overhead (except for flag checking). I considered graph comparison algorithms that doesn't require using object tags, but they are all of a high computational complexity, and will still fail to detect object moves properly, even for trivial cases, so using tags looks like unavoidable. Review URL: http://codereview.chromium.org/3020002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jun, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
Review URL: http://codereview.chromium.org/2846012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Jun, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
Review URL: http://codereview.chromium.org/2822009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 May, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
As several pages can run in a single V8 instance, it is possible to have functions from different security contexts intermixed in a single CPU profile. To avoid exposing function names from one page to another, filtering is introduced. The basic idea is that instead of capturing return addresses from stack, we're now capturing JSFunction addresses (as we anyway work only with JS stack frames.) Each JSFunction can reach out for context's security token. When providing a profile to a page, the profile is filtered using the security token of caller page. Any functions with different security tokens are filtered out (yes, we only do fast path check for now) and their ticks are attributed to their parents. Review URL: http://codereview.chromium.org/2083005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 May, 2010 1 commit
-
-
sgjesse@chromium.org authored
This API is extensible, and parameterized with flags so that callers can specify what subset of information they want to capture for each stack frame. Patch by jaimeyap, see http://codereview.chromium.org/1694011 for details. Review URL: http://codereview.chromium.org/2028001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Apr, 2010 1 commit
-
-
mikhail.naganov@gmail.com authored
I succeeded at connecting the new implementation to Chromium, this commit includes required (although, not all) adjustments. Review URL: http://codereview.chromium.org/1547023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-