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 "include/v8-profiler.h" | 8 #include "include/v8-profiler.h" |
9 #include "src/base/platform/time.h" | 9 #include "src/base/platform/time.h" |
10 #include "src/objects.h" | 10 #include "src/objects.h" |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 HeapEntry::Type type, | 344 HeapEntry::Type type, |
345 const char* name, | 345 const char* name, |
346 size_t size); | 346 size_t size); |
347 | 347 |
348 static String* GetConstructorName(JSObject* object); | 348 static String* GetConstructorName(JSObject* object); |
349 | 349 |
350 private: | 350 private: |
351 typedef bool (V8HeapExplorer::*ExtractReferencesMethod)(int entry, | 351 typedef bool (V8HeapExplorer::*ExtractReferencesMethod)(int entry, |
352 HeapObject* object); | 352 HeapObject* object); |
353 | 353 |
| 354 void MarkVisitedField(HeapObject* obj, int offset); |
| 355 |
354 HeapEntry* AddEntry(HeapObject* object); | 356 HeapEntry* AddEntry(HeapObject* object); |
355 HeapEntry* AddEntry(HeapObject* object, | 357 HeapEntry* AddEntry(HeapObject* object, |
356 HeapEntry::Type type, | 358 HeapEntry::Type type, |
357 const char* name); | 359 const char* name); |
358 | 360 |
359 const char* GetSystemEntryName(HeapObject* object); | 361 const char* GetSystemEntryName(HeapObject* object); |
360 | 362 |
361 template<V8HeapExplorer::ExtractReferencesMethod extractor> | 363 template<V8HeapExplorer::ExtractReferencesMethod extractor> |
362 bool IterateAndExtractSinglePass(); | 364 bool IterateAndExtractSinglePass(); |
363 | 365 |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
458 StringsStorage* names_; | 460 StringsStorage* names_; |
459 HeapObjectsMap* heap_object_map_; | 461 HeapObjectsMap* heap_object_map_; |
460 SnapshottingProgressReportingInterface* progress_; | 462 SnapshottingProgressReportingInterface* progress_; |
461 SnapshotFiller* filler_; | 463 SnapshotFiller* filler_; |
462 HeapObjectsSet objects_tags_; | 464 HeapObjectsSet objects_tags_; |
463 HeapObjectsSet strong_gc_subroot_names_; | 465 HeapObjectsSet strong_gc_subroot_names_; |
464 HeapObjectsSet user_roots_; | 466 HeapObjectsSet user_roots_; |
465 HeapObjectsSet weak_containers_; | 467 HeapObjectsSet weak_containers_; |
466 v8::HeapProfiler::ObjectNameResolver* global_object_name_resolver_; | 468 v8::HeapProfiler::ObjectNameResolver* global_object_name_resolver_; |
467 | 469 |
| 470 std::vector<bool> marks_; |
| 471 |
468 friend class IndexedReferencesExtractor; | 472 friend class IndexedReferencesExtractor; |
469 friend class RootsReferencesExtractor; | 473 friend class RootsReferencesExtractor; |
470 | 474 |
471 DISALLOW_COPY_AND_ASSIGN(V8HeapExplorer); | 475 DISALLOW_COPY_AND_ASSIGN(V8HeapExplorer); |
472 }; | 476 }; |
473 | 477 |
474 | 478 |
475 class NativeGroupRetainedObjectInfo; | 479 class NativeGroupRetainedObjectInfo; |
476 | 480 |
477 | 481 |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
613 friend class HeapSnapshotJSONSerializerIterator; | 617 friend class HeapSnapshotJSONSerializerIterator; |
614 | 618 |
615 DISALLOW_COPY_AND_ASSIGN(HeapSnapshotJSONSerializer); | 619 DISALLOW_COPY_AND_ASSIGN(HeapSnapshotJSONSerializer); |
616 }; | 620 }; |
617 | 621 |
618 | 622 |
619 } // namespace internal | 623 } // namespace internal |
620 } // namespace v8 | 624 } // namespace v8 |
621 | 625 |
622 #endif // V8_PROFILER_HEAP_SNAPSHOT_GENERATOR_H_ | 626 #endif // V8_PROFILER_HEAP_SNAPSHOT_GENERATOR_H_ |
OLD | NEW |