Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(843)

Unified Diff: src/profile-generator.h

Issue 6665038: Dramatically speed up detailed heap snapshot generation. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Don't use a hash map, instead mark references Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/profile-generator.h
diff --git a/src/profile-generator.h b/src/profile-generator.h
index 559ffc627fcee1cc17735f35157c820868554b6d..2c9383b1e78997071ab881479030d92d39754aa7 100644
--- a/src/profile-generator.h
+++ b/src/profile-generator.h
@@ -1019,6 +1019,7 @@ class V8HeapExplorer : public HeapEntriesAllocator {
void ExtractPropertyReferences(JSObject* js_obj, HeapEntry* entry);
void ExtractElementReferences(JSObject* js_obj, HeapEntry* entry);
void ExtractInternalReferences(JSObject* js_obj, HeapEntry* entry);
+ inline void MarkAsFailure(Address field);
Vitaly Repeshko 2011/03/17 16:52:00 Usually such functions hide the exact machinery th
mnaganov (inactive) 2011/03/17 17:37:18 I've moved it to IndexedReferencesExtractor and re
void SetClosureReference(HeapObject* parent_obj,
HeapEntry* parent,
String* reference_name,
@@ -1030,11 +1031,13 @@ class V8HeapExplorer : public HeapEntriesAllocator {
void SetInternalReference(HeapObject* parent_obj,
HeapEntry* parent,
const char* reference_name,
- Object* child);
+ Object* child,
+ Address field = NULL);
void SetInternalReference(HeapObject* parent_obj,
HeapEntry* parent,
int index,
- Object* child);
+ Object* child,
+ Address field = NULL);
void SetHiddenReference(HeapObject* parent_obj,
HeapEntry* parent,
int index,
@@ -1042,7 +1045,8 @@ class V8HeapExplorer : public HeapEntriesAllocator {
void SetPropertyReference(HeapObject* parent_obj,
HeapEntry* parent,
String* reference_name,
- Object* child);
+ Object* child,
+ Address field = NULL);
void SetPropertyShortcutReference(HeapObject* parent_obj,
HeapEntry* parent,
String* reference_name,
@@ -1056,9 +1060,6 @@ class V8HeapExplorer : public HeapEntriesAllocator {
HeapSnapshot* snapshot_;
HeapSnapshotsCollection* collection_;
SnapshottingProgressReportingInterface* progress_;
- // Used during references extraction to mark heap objects that
- // are references via non-hidden properties.
- HeapObjectsSet known_references_;
SnapshotFillerInterface* filler_;
static HeapObject* const kGcRootsObject;

Powered by Google App Engine
This is Rietveld 408576698