diff options
Diffstat (limited to 'deps/v8/src/heap-profiler.cc')
-rw-r--r-- | deps/v8/src/heap-profiler.cc | 125 |
1 files changed, 18 insertions, 107 deletions
diff --git a/deps/v8/src/heap-profiler.cc b/deps/v8/src/heap-profiler.cc index c9f1d501da..5c1badf9c9 100644 --- a/deps/v8/src/heap-profiler.cc +++ b/deps/v8/src/heap-profiler.cc @@ -44,72 +44,13 @@ HeapProfiler::~HeapProfiler() { } -void HeapProfiler::ResetSnapshots() { +void HeapProfiler::DeleteAllSnapshots() { Heap* the_heap = heap(); delete snapshots_; snapshots_ = new HeapSnapshotsCollection(the_heap); } -void HeapProfiler::SetUp() { - Isolate* isolate = Isolate::Current(); - if (isolate->heap_profiler() == NULL) { - isolate->set_heap_profiler(new HeapProfiler(isolate->heap())); - } -} - - -void HeapProfiler::TearDown() { - Isolate* isolate = Isolate::Current(); - delete isolate->heap_profiler(); - isolate->set_heap_profiler(NULL); -} - - -HeapSnapshot* HeapProfiler::TakeSnapshot( - const char* name, - int type, - v8::ActivityControl* control, - v8::HeapProfiler::ObjectNameResolver* resolver) { - ASSERT(Isolate::Current()->heap_profiler() != NULL); - return Isolate::Current()->heap_profiler()->TakeSnapshotImpl(name, - type, - control, - resolver); -} - - -HeapSnapshot* HeapProfiler::TakeSnapshot( - String* name, - int type, - v8::ActivityControl* control, - v8::HeapProfiler::ObjectNameResolver* resolver) { - ASSERT(Isolate::Current()->heap_profiler() != NULL); - return Isolate::Current()->heap_profiler()->TakeSnapshotImpl(name, - type, - control, - resolver); -} - - -void HeapProfiler::StartHeapObjectsTracking() { - ASSERT(Isolate::Current()->heap_profiler() != NULL); - Isolate::Current()->heap_profiler()->StartHeapObjectsTrackingImpl(); -} - - -void HeapProfiler::StopHeapObjectsTracking() { - ASSERT(Isolate::Current()->heap_profiler() != NULL); - Isolate::Current()->heap_profiler()->StopHeapObjectsTrackingImpl(); -} - - -SnapshotObjectId HeapProfiler::PushHeapObjectsStats(v8::OutputStream* stream) { - ASSERT(Isolate::Current()->heap_profiler() != NULL); - return Isolate::Current()->heap_profiler()->PushHeapObjectsStatsImpl(stream); -} - - void HeapProfiler::DefineWrapperClass( uint16_t class_id, v8::HeapProfiler::WrapperInfoCallback callback) { ASSERT(class_id != v8::HeapProfiler::kPersistentHandleNoClassId); @@ -129,99 +70,69 @@ v8::RetainedObjectInfo* HeapProfiler::ExecuteWrapperClassCallback( } -HeapSnapshot* HeapProfiler::TakeSnapshotImpl( +HeapSnapshot* HeapProfiler::TakeSnapshot( const char* name, - int type, v8::ActivityControl* control, v8::HeapProfiler::ObjectNameResolver* resolver) { - HeapSnapshot::Type s_type = static_cast<HeapSnapshot::Type>(type); - HeapSnapshot* result = - snapshots_->NewSnapshot(s_type, name, next_snapshot_uid_++); - bool generation_completed = true; - switch (s_type) { - case HeapSnapshot::kFull: { - HeapSnapshotGenerator generator(result, control, resolver, heap()); - generation_completed = generator.GenerateSnapshot(); - break; + HeapSnapshot* result = snapshots_->NewSnapshot(name, next_snapshot_uid_++); + { + HeapSnapshotGenerator generator(result, control, resolver, heap()); + if (!generator.GenerateSnapshot()) { + delete result; + result = NULL; } - default: - UNREACHABLE(); - } - if (!generation_completed) { - delete result; - result = NULL; } snapshots_->SnapshotGenerationFinished(result); return result; } -HeapSnapshot* HeapProfiler::TakeSnapshotImpl( +HeapSnapshot* HeapProfiler::TakeSnapshot( String* name, - int type, v8::ActivityControl* control, v8::HeapProfiler::ObjectNameResolver* resolver) { - return TakeSnapshotImpl(snapshots_->names()->GetName(name), type, control, - resolver); + return TakeSnapshot(snapshots_->names()->GetName(name), control, resolver); } -void HeapProfiler::StartHeapObjectsTrackingImpl() { +void HeapProfiler::StartHeapObjectsTracking() { snapshots_->StartHeapObjectsTracking(); } -SnapshotObjectId HeapProfiler::PushHeapObjectsStatsImpl(OutputStream* stream) { +SnapshotObjectId HeapProfiler::PushHeapObjectsStats(OutputStream* stream) { return snapshots_->PushHeapObjectsStats(stream); } -void HeapProfiler::StopHeapObjectsTrackingImpl() { +void HeapProfiler::StopHeapObjectsTracking() { snapshots_->StopHeapObjectsTracking(); } size_t HeapProfiler::GetMemorySizeUsedByProfiler() { - HeapProfiler* profiler = Isolate::Current()->heap_profiler(); - ASSERT(profiler != NULL); - size_t size = profiler->snapshots_->GetUsedMemorySize(); - return size; + return snapshots_->GetUsedMemorySize(); } int HeapProfiler::GetSnapshotsCount() { - HeapProfiler* profiler = Isolate::Current()->heap_profiler(); - ASSERT(profiler != NULL); - return profiler->snapshots_->snapshots()->length(); + return snapshots_->snapshots()->length(); } HeapSnapshot* HeapProfiler::GetSnapshot(int index) { - HeapProfiler* profiler = Isolate::Current()->heap_profiler(); - ASSERT(profiler != NULL); - return profiler->snapshots_->snapshots()->at(index); + return snapshots_->snapshots()->at(index); } HeapSnapshot* HeapProfiler::FindSnapshot(unsigned uid) { - HeapProfiler* profiler = Isolate::Current()->heap_profiler(); - ASSERT(profiler != NULL); - return profiler->snapshots_->GetSnapshot(uid); + return snapshots_->GetSnapshot(uid); } SnapshotObjectId HeapProfiler::GetSnapshotObjectId(Handle<Object> obj) { if (!obj->IsHeapObject()) return v8::HeapProfiler::kUnknownObjectId; - HeapProfiler* profiler = Isolate::Current()->heap_profiler(); - ASSERT(profiler != NULL); - return profiler->snapshots_->FindObjectId(HeapObject::cast(*obj)->address()); -} - - -void HeapProfiler::DeleteAllSnapshots() { - HeapProfiler* profiler = Isolate::Current()->heap_profiler(); - ASSERT(profiler != NULL); - profiler->ResetSnapshots(); + return snapshots_->FindObjectId(HeapObject::cast(*obj)->address()); } |