V8 API Reference Guide for node.js v0.12.11 - v0.12.14
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
v8::HeapProfiler Class Reference

#include <v8-profiler.h>


class  ObjectNameResolver

Public Types

typedef RetainedObjectInfo *(* WrapperInfoCallback) (uint16_t class_id, Handle< Value > wrapper)

Public Member Functions

int GetSnapshotCount ()
const HeapSnapshotGetHeapSnapshot (int index)
SnapshotObjectId GetObjectId (Handle< Value > value)
Handle< ValueFindObjectById (SnapshotObjectId id)
void ClearObjectIds ()
const HeapSnapshotTakeHeapSnapshot (Handle< String > title, ActivityControl *control=NULL, ObjectNameResolver *global_object_name_resolver=NULL)
void StartTrackingHeapObjects (bool track_allocations=false)
SnapshotObjectId GetHeapStats (OutputStream *stream)
void StopTrackingHeapObjects ()
void DeleteAllHeapSnapshots ()
void SetWrapperClassInfoProvider (uint16_t class_id, WrapperInfoCallback callback)
size_t GetProfilerMemorySize ()
void SetRetainedObjectInfo (UniqueId id, RetainedObjectInfo *info)

Static Public Attributes

static const SnapshotObjectId kUnknownObjectId = 0
static const uint16_t kPersistentHandleNoClassId = 0

Detailed Description

Interface for controlling heap profiling. Instance of the profiler can be retrieved using v8::Isolate::GetHeapProfiler.

Member Typedef Documentation

typedef RetainedObjectInfo*(* v8::HeapProfiler::WrapperInfoCallback) (uint16_t class_id, Handle< Value > wrapper)

Callback function invoked for obtaining RetainedObjectInfo for the given JavaScript wrapper object. It is prohibited to enter V8 while the callback is running: only getters on the handle and GetPointerFromInternalField on the objects are allowed.

Member Function Documentation

void v8::HeapProfiler::ClearObjectIds ( )

Clears internal map from SnapshotObjectId to heap object. The new objects will not be added into it unless a heap snapshot is taken or heap object tracking is kicked off.

void v8::HeapProfiler::DeleteAllHeapSnapshots ( )

Deletes all snapshots taken. All previously returned pointers to snapshots and their contents become invalid after this call.

Handle<Value> v8::HeapProfiler::FindObjectById ( SnapshotObjectId  id)

Returns heap object with given SnapshotObjectId if the object is alive, otherwise empty handle is returned.

const HeapSnapshot* v8::HeapProfiler::GetHeapSnapshot ( int  index)

Returns a snapshot by index.

SnapshotObjectId v8::HeapProfiler::GetHeapStats ( OutputStream stream)

Adds a new time interval entry to the aggregated statistics array. The time interval entry contains information on the current heap objects population size. The method also updates aggregated statistics and reports updates for all previous time intervals via the OutputStream object. Updates on each time interval are provided as a stream of the HeapStatsUpdate structure instances. The return value of the function is the last seen heap object Id.

StartTrackingHeapObjects must be called before the first call to this method.

SnapshotObjectId v8::HeapProfiler::GetObjectId ( Handle< Value value)

Returns SnapshotObjectId for a heap object referenced by |value| if it has been seen by the heap profiler, kUnknownObjectId otherwise.

size_t v8::HeapProfiler::GetProfilerMemorySize ( )

Returns memory used for profiler internal data and snapshots.

int v8::HeapProfiler::GetSnapshotCount ( )

Returns the number of snapshots taken.

void v8::HeapProfiler::SetRetainedObjectInfo ( UniqueId  id,
RetainedObjectInfo info 

Sets a RetainedObjectInfo for an object group (see V8::SetObjectGroupId).

void v8::HeapProfiler::SetWrapperClassInfoProvider ( uint16_t  class_id,
WrapperInfoCallback  callback 

Binds a callback to embedder's class ID.

void v8::HeapProfiler::StartTrackingHeapObjects ( bool  track_allocations = false)

Starts tracking of heap objects population statistics. After calling this method, all heap objects relocations done by the garbage collector are being registered.

|track_allocations| parameter controls whether stack trace of each allocation in the heap will be recorded and reported as part of HeapSnapshot.

void v8::HeapProfiler::StopTrackingHeapObjects ( )

Stops tracking of heap objects population statistics, cleans up all collected data. StartHeapObjectsTracking must be called again prior to calling PushHeapObjectsStats next time.

const HeapSnapshot* v8::HeapProfiler::TakeHeapSnapshot ( Handle< String title,
ActivityControl control = NULL,
ObjectNameResolver global_object_name_resolver = NULL 

Takes a heap snapshot and returns it. Title may be an empty string.

Member Data Documentation

const uint16_t v8::HeapProfiler::kPersistentHandleNoClassId = 0

Default value of persistent handle class ID. Must not be used to define a class. Can be used to reset a class of a persistent handle.

const SnapshotObjectId v8::HeapProfiler::kUnknownObjectId = 0

A constant for invalid SnapshotObjectId. GetSnapshotObjectId will return it in case heap profiler cannot find id for the object passed as parameter. HeapSnapshot::GetNodeById will always return NULL for such id.

The documentation for this class was generated from the following file: