v8  3.11.10 (node 0.8.28)
V8 is Google's open source JavaScript engine
HeapProfiler Class Reference

#include <v8-profiler.h>

Public Types

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

Static Public Member Functions

static int GetSnapshotsCount ()
static const HeapSnapshotGetSnapshot (int index)
static const HeapSnapshotFindSnapshot (unsigned uid)
static SnapshotObjectId GetSnapshotObjectId (Handle< Value > value)
static const HeapSnapshotTakeSnapshot (Handle< String > title, HeapSnapshot::Type type=HeapSnapshot::kFull, ActivityControl *control=NULL)
static void StartHeapObjectsTracking ()
static SnapshotObjectId PushHeapObjectsStats (OutputStream *stream)
static void StopHeapObjectsTracking ()
static void DeleteAllSnapshots ()
static void DefineWrapperClass (uint16_t class_id, WrapperInfoCallback callback)
static int GetPersistentHandleCount ()
static size_t GetMemorySizeUsedByProfiler ()

Static Public Attributes

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

Detailed Description

Interface for controlling heap profiling.

Definition at line 395 of file v8-profiler.h.

Member Typedef Documentation

◆ WrapperInfoCallback

typedef RetainedObjectInfo*(* 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.

Definition at line 403 of file v8-profiler.h.

Member Function Documentation

◆ DefineWrapperClass()

static void DefineWrapperClass ( uint16_t  class_id,
WrapperInfoCallback  callback 

Binds a callback to embedder's class ID.

◆ DeleteAllSnapshots()

static void DeleteAllSnapshots ( )

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

◆ FindSnapshot()

static const HeapSnapshot* FindSnapshot ( unsigned  uid)

Returns a profile by uid.

◆ GetMemorySizeUsedByProfiler()

static size_t GetMemorySizeUsedByProfiler ( )

Returns memory used for profiler internal data and snapshots.

◆ GetPersistentHandleCount()

static int GetPersistentHandleCount ( )

Returns the number of currently existing persistent handles.

◆ GetSnapshot()

static const HeapSnapshot* GetSnapshot ( int  index)

Returns a snapshot by index.

◆ GetSnapshotObjectId()

static SnapshotObjectId GetSnapshotObjectId ( Handle< Value value)

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

◆ GetSnapshotsCount()

static int GetSnapshotsCount ( )

Returns the number of snapshots taken.

◆ PushHeapObjectsStats()

static SnapshotObjectId PushHeapObjectsStats ( 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.

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

◆ StartHeapObjectsTracking()

static void StartHeapObjectsTracking ( )

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

◆ StopHeapObjectsTracking()

static void StopHeapObjectsTracking ( )

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

◆ TakeSnapshot()

static const HeapSnapshot* TakeSnapshot ( Handle< String title,
HeapSnapshot::Type  type = HeapSnapshot::kFull,
ActivityControl control = NULL 

Takes a heap snapshot and returns it. Title may be an empty string. See HeapSnapshot::Type for types description.

Field Documentation

◆ kPersistentHandleNoClassId

const uint16_t 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.

Definition at line 481 of file v8-profiler.h.

◆ kUnknownObjectId

const SnapshotObjectId 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.

Definition at line 426 of file v8-profiler.h.

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