Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 408 public: | 408 public: |
| 409 virtual ~SnapshottingProgressReportingInterface() { } | 409 virtual ~SnapshottingProgressReportingInterface() { } |
| 410 virtual void ProgressStep() = 0; | 410 virtual void ProgressStep() = 0; |
| 411 virtual bool ProgressReport(bool force) = 0; | 411 virtual bool ProgressReport(bool force) = 0; |
| 412 }; | 412 }; |
| 413 | 413 |
| 414 | 414 |
| 415 // An implementation of V8 heap graph extractor. | 415 // An implementation of V8 heap graph extractor. |
| 416 class V8HeapExplorer : public HeapEntriesAllocator { | 416 class V8HeapExplorer : public HeapEntriesAllocator { |
| 417 public: | 417 public: |
| 418 V8HeapExplorer(HeapSnapshot* snapshot, | 418 V8HeapExplorer(Heap* heap, |
|
Sven Panne
2013/09/03 10:42:08
I don't think we need this: A HeapSnapshot has a H
dcarney
2013/09/03 11:12:21
Done.
| |
| 419 HeapSnapshot* snapshot, | |
| 419 SnapshottingProgressReportingInterface* progress, | 420 SnapshottingProgressReportingInterface* progress, |
| 420 v8::HeapProfiler::ObjectNameResolver* resolver); | 421 v8::HeapProfiler::ObjectNameResolver* resolver); |
| 421 virtual ~V8HeapExplorer(); | 422 virtual ~V8HeapExplorer(); |
| 422 virtual HeapEntry* AllocateEntry(HeapThing ptr); | 423 virtual HeapEntry* AllocateEntry(HeapThing ptr); |
| 423 void AddRootEntries(SnapshotFillerInterface* filler); | 424 void AddRootEntries(SnapshotFillerInterface* filler); |
| 424 int EstimateObjectsCount(HeapIterator* iterator); | 425 int EstimateObjectsCount(HeapIterator* iterator); |
| 425 bool IterateAndExtractReferences(SnapshotFillerInterface* filler); | 426 bool IterateAndExtractReferences(SnapshotFillerInterface* filler); |
| 426 void TagGlobalObjects(); | 427 void TagGlobalObjects(); |
| 427 | 428 |
| 428 static String* GetConstructorName(JSObject* object); | 429 static String* GetConstructorName(JSObject* object); |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 530 DISALLOW_COPY_AND_ASSIGN(V8HeapExplorer); | 531 DISALLOW_COPY_AND_ASSIGN(V8HeapExplorer); |
| 531 }; | 532 }; |
| 532 | 533 |
| 533 | 534 |
| 534 class NativeGroupRetainedObjectInfo; | 535 class NativeGroupRetainedObjectInfo; |
| 535 | 536 |
| 536 | 537 |
| 537 // An implementation of retained native objects extractor. | 538 // An implementation of retained native objects extractor. |
| 538 class NativeObjectsExplorer { | 539 class NativeObjectsExplorer { |
| 539 public: | 540 public: |
| 540 NativeObjectsExplorer(HeapSnapshot* snapshot, | 541 NativeObjectsExplorer(Isolate* isolate, |
|
Sven Panne
2013/09/03 10:42:08
Basically the same holds here.
dcarney
2013/09/03 11:12:21
Done.
| |
| 541 SnapshottingProgressReportingInterface* progress); | 542 HeapSnapshot* snapshot, |
| 543 SnapshottingProgressReportingInterface* progress); | |
| 542 virtual ~NativeObjectsExplorer(); | 544 virtual ~NativeObjectsExplorer(); |
| 543 void AddRootEntries(SnapshotFillerInterface* filler); | 545 void AddRootEntries(SnapshotFillerInterface* filler); |
| 544 int EstimateObjectsCount(); | 546 int EstimateObjectsCount(); |
| 545 bool IterateAndExtractReferences(SnapshotFillerInterface* filler); | 547 bool IterateAndExtractReferences(SnapshotFillerInterface* filler); |
| 546 | 548 |
| 547 private: | 549 private: |
| 548 void FillRetainedObjects(); | 550 void FillRetainedObjects(); |
| 549 void FillImplicitReferences(); | 551 void FillImplicitReferences(); |
| 550 List<HeapObject*>* GetListMaybeDisposeInfo(v8::RetainedObjectInfo* info); | 552 List<HeapObject*>* GetListMaybeDisposeInfo(v8::RetainedObjectInfo* info); |
| 551 void SetNativeRootReference(v8::RetainedObjectInfo* info); | 553 void SetNativeRootReference(v8::RetainedObjectInfo* info); |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 563 (reinterpret_cast<v8::RetainedObjectInfo*>(key1))->IsEquivalent( | 565 (reinterpret_cast<v8::RetainedObjectInfo*>(key1))->IsEquivalent( |
| 564 reinterpret_cast<v8::RetainedObjectInfo*>(key2)); | 566 reinterpret_cast<v8::RetainedObjectInfo*>(key2)); |
| 565 } | 567 } |
| 566 INLINE(static bool StringsMatch(void* key1, void* key2)) { | 568 INLINE(static bool StringsMatch(void* key1, void* key2)) { |
| 567 return strcmp(reinterpret_cast<char*>(key1), | 569 return strcmp(reinterpret_cast<char*>(key1), |
| 568 reinterpret_cast<char*>(key2)) == 0; | 570 reinterpret_cast<char*>(key2)) == 0; |
| 569 } | 571 } |
| 570 | 572 |
| 571 NativeGroupRetainedObjectInfo* FindOrAddGroupInfo(const char* label); | 573 NativeGroupRetainedObjectInfo* FindOrAddGroupInfo(const char* label); |
| 572 | 574 |
| 575 Isolate* isolate_; | |
| 573 HeapSnapshot* snapshot_; | 576 HeapSnapshot* snapshot_; |
| 574 HeapSnapshotsCollection* collection_; | 577 HeapSnapshotsCollection* collection_; |
| 575 SnapshottingProgressReportingInterface* progress_; | 578 SnapshottingProgressReportingInterface* progress_; |
| 576 bool embedder_queried_; | 579 bool embedder_queried_; |
| 577 HeapObjectsSet in_groups_; | 580 HeapObjectsSet in_groups_; |
| 578 // RetainedObjectInfo* -> List<HeapObject*>* | 581 // RetainedObjectInfo* -> List<HeapObject*>* |
| 579 HashMap objects_by_info_; | 582 HashMap objects_by_info_; |
| 580 HashMap native_groups_; | 583 HashMap native_groups_; |
| 581 HeapEntriesAllocator* synthetic_entries_allocator_; | 584 HeapEntriesAllocator* synthetic_entries_allocator_; |
| 582 HeapEntriesAllocator* native_entries_allocator_; | 585 HeapEntriesAllocator* native_entries_allocator_; |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 668 friend class HeapSnapshotJSONSerializerIterator; | 671 friend class HeapSnapshotJSONSerializerIterator; |
| 669 | 672 |
| 670 DISALLOW_COPY_AND_ASSIGN(HeapSnapshotJSONSerializer); | 673 DISALLOW_COPY_AND_ASSIGN(HeapSnapshotJSONSerializer); |
| 671 }; | 674 }; |
| 672 | 675 |
| 673 | 676 |
| 674 } } // namespace v8::internal | 677 } } // namespace v8::internal |
| 675 | 678 |
| 676 #endif // V8_HEAP_SNAPSHOT_GENERATOR_H_ | 679 #endif // V8_HEAP_SNAPSHOT_GENERATOR_H_ |
| 677 | 680 |
| OLD | NEW |