diff options
author | Fedor Indutny <fedor.indutny@gmail.com> | 2014-03-13 20:45:44 +0400 |
---|---|---|
committer | Fedor Indutny <fedor.indutny@gmail.com> | 2014-03-13 20:56:54 +0400 |
commit | 1c7bf245dc2d520c005e01bcb56ecb3275971395 (patch) | |
tree | 34d8160c98bd8dd33757252d87a0f6586fea8213 /deps/v8/src/heap-profiler.h | |
parent | 93c3674ff7115fb2a3dbb5b4ffd22f4d5ed9a472 (diff) | |
download | node-1c7bf245dc2d520c005e01bcb56ecb3275971395.tar.gz |
deps: update v8 to 3.24.40
Diffstat (limited to 'deps/v8/src/heap-profiler.h')
-rw-r--r-- | deps/v8/src/heap-profiler.h | 45 |
1 files changed, 21 insertions, 24 deletions
diff --git a/deps/v8/src/heap-profiler.h b/deps/v8/src/heap-profiler.h index 74002278d..e4838df13 100644 --- a/deps/v8/src/heap-profiler.h +++ b/deps/v8/src/heap-profiler.h @@ -30,12 +30,12 @@ #include "heap-snapshot-generator-inl.h" #include "isolate.h" +#include "smart-pointers.h" namespace v8 { namespace internal { class HeapSnapshot; -class HeapSnapshotsCollection; class HeapProfiler { public: @@ -53,22 +53,24 @@ class HeapProfiler { v8::ActivityControl* control, v8::HeapProfiler::ObjectNameResolver* resolver); - void StartHeapObjectsTracking(); + void StartHeapObjectsTracking(bool track_allocations); void StopHeapObjectsTracking(); - - static void RecordObjectAllocationFromMasm(Isolate* isolate, - Address obj, - int size); + AllocationTracker* allocation_tracker() const { + return allocation_tracker_.get(); + } + HeapObjectsMap* heap_object_map() const { return ids_.get(); } + StringsStorage* names() const { return names_.get(); } SnapshotObjectId PushHeapObjectsStats(OutputStream* stream); int GetSnapshotsCount(); HeapSnapshot* GetSnapshot(int index); SnapshotObjectId GetSnapshotObjectId(Handle<Object> obj); void DeleteAllSnapshots(); + void RemoveSnapshot(HeapSnapshot* snapshot); void ObjectMoveEvent(Address from, Address to, int size); - void NewObjectEvent(Address addr, int size); + void AllocationEvent(Address addr, int size); void UpdateObjectSizeEvent(Address addr, int size); @@ -77,32 +79,27 @@ class HeapProfiler { v8::RetainedObjectInfo* ExecuteWrapperClassCallback(uint16_t class_id, Object** wrapper); - INLINE(bool is_profiling()) { - return snapshots_->is_tracking_objects(); - } - void SetRetainedObjectInfo(UniqueId id, RetainedObjectInfo* info); - bool is_tracking_allocations() { - return is_tracking_allocations_; - } - - void StartHeapAllocationsRecording(); - void StopHeapAllocationsRecording(); - - int FindUntrackedObjects() { - return snapshots_->FindUntrackedObjects(); + bool is_tracking_object_moves() const { return is_tracking_object_moves_; } + bool is_tracking_allocations() const { + return !allocation_tracker_.is_empty(); } - void DropCompiledCode(); + Handle<HeapObject> FindHeapObjectById(SnapshotObjectId id); + void ClearHeapObjectMap(); private: - Heap* heap() const { return snapshots_->heap(); } + Heap* heap() const { return ids_->heap(); } - HeapSnapshotsCollection* snapshots_; + // Mapping from HeapObject addresses to objects' uids. + SmartPointer<HeapObjectsMap> ids_; + List<HeapSnapshot*> snapshots_; + SmartPointer<StringsStorage> names_; unsigned next_snapshot_uid_; List<v8::HeapProfiler::WrapperInfoCallback> wrapper_callbacks_; - bool is_tracking_allocations_; + SmartPointer<AllocationTracker> allocation_tracker_; + bool is_tracking_object_moves_; }; } } // namespace v8::internal |