OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_PROFILER_HEAP_SNAPSHOT_GENERATOR_H_ | 5 #ifndef V8_PROFILER_HEAP_SNAPSHOT_GENERATOR_H_ |
6 #define V8_PROFILER_HEAP_SNAPSHOT_GENERATOR_H_ | 6 #define V8_PROFILER_HEAP_SNAPSHOT_GENERATOR_H_ |
7 | 7 |
| 8 #include <unordered_map> |
| 9 |
8 #include "include/v8-profiler.h" | 10 #include "include/v8-profiler.h" |
9 #include "src/base/platform/time.h" | 11 #include "src/base/platform/time.h" |
10 #include "src/objects.h" | 12 #include "src/objects.h" |
11 #include "src/profiler/strings-storage.h" | 13 #include "src/profiler/strings-storage.h" |
12 | 14 |
13 namespace v8 { | 15 namespace v8 { |
14 namespace internal { | 16 namespace internal { |
15 | 17 |
16 class AllocationTracker; | 18 class AllocationTracker; |
17 class AllocationTraceNode; | 19 class AllocationTraceNode; |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 const char* name_format_string = NULL, | 448 const char* name_format_string = NULL, |
447 int field_offset = -1); | 449 int field_offset = -1); |
448 | 450 |
449 void SetUserGlobalReference(Object* user_global); | 451 void SetUserGlobalReference(Object* user_global); |
450 void SetRootGcRootsReference(); | 452 void SetRootGcRootsReference(); |
451 void SetGcRootsReference(VisitorSynchronization::SyncTag tag); | 453 void SetGcRootsReference(VisitorSynchronization::SyncTag tag); |
452 void SetGcSubrootReference( | 454 void SetGcSubrootReference( |
453 VisitorSynchronization::SyncTag tag, bool is_weak, Object* child); | 455 VisitorSynchronization::SyncTag tag, bool is_weak, Object* child); |
454 const char* GetStrongGcSubrootName(Object* object); | 456 const char* GetStrongGcSubrootName(Object* object); |
455 void TagObject(Object* obj, const char* tag); | 457 void TagObject(Object* obj, const char* tag); |
456 void MarkAsWeakContainer(Object* object); | 458 void TagFixedArraySubType(const FixedArray* array, |
| 459 FixedArraySubInstanceType type); |
457 | 460 |
458 HeapEntry* GetEntry(Object* obj); | 461 HeapEntry* GetEntry(Object* obj); |
459 | 462 |
460 Heap* heap_; | 463 Heap* heap_; |
461 HeapSnapshot* snapshot_; | 464 HeapSnapshot* snapshot_; |
462 StringsStorage* names_; | 465 StringsStorage* names_; |
463 HeapObjectsMap* heap_object_map_; | 466 HeapObjectsMap* heap_object_map_; |
464 SnapshottingProgressReportingInterface* progress_; | 467 SnapshottingProgressReportingInterface* progress_; |
465 SnapshotFiller* filler_; | 468 SnapshotFiller* filler_; |
466 HeapObjectsSet objects_tags_; | 469 HeapObjectsSet objects_tags_; |
467 HeapObjectsSet strong_gc_subroot_names_; | 470 HeapObjectsSet strong_gc_subroot_names_; |
468 HeapObjectsSet user_roots_; | 471 HeapObjectsSet user_roots_; |
469 HeapObjectsSet weak_containers_; | 472 std::unordered_map<const FixedArray*, FixedArraySubInstanceType> array_types_; |
470 v8::HeapProfiler::ObjectNameResolver* global_object_name_resolver_; | 473 v8::HeapProfiler::ObjectNameResolver* global_object_name_resolver_; |
471 | 474 |
472 std::vector<bool> marks_; | 475 std::vector<bool> marks_; |
473 | 476 |
474 friend class IndexedReferencesExtractor; | 477 friend class IndexedReferencesExtractor; |
475 friend class RootsReferencesExtractor; | 478 friend class RootsReferencesExtractor; |
476 | 479 |
477 DISALLOW_COPY_AND_ASSIGN(V8HeapExplorer); | 480 DISALLOW_COPY_AND_ASSIGN(V8HeapExplorer); |
478 }; | 481 }; |
479 | 482 |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
619 friend class HeapSnapshotJSONSerializerIterator; | 622 friend class HeapSnapshotJSONSerializerIterator; |
620 | 623 |
621 DISALLOW_COPY_AND_ASSIGN(HeapSnapshotJSONSerializer); | 624 DISALLOW_COPY_AND_ASSIGN(HeapSnapshotJSONSerializer); |
622 }; | 625 }; |
623 | 626 |
624 | 627 |
625 } // namespace internal | 628 } // namespace internal |
626 } // namespace v8 | 629 } // namespace v8 |
627 | 630 |
628 #endif // V8_PROFILER_HEAP_SNAPSHOT_GENERATOR_H_ | 631 #endif // V8_PROFILER_HEAP_SNAPSHOT_GENERATOR_H_ |
OLD | NEW |