profiler

内存 profiler 模块

使用方法:

var profiler = require('profiler');

Field Summary

Type Method and Description
const public const Node_HiddenNode_HiddenNode_Hidden

隐藏节点,当显示给用户时可以被过滤掉

const public const Node_ArrayNode_ArrayNode_Array

数组

const public const Node_StringNode_StringNode_String

字符串

const public const Node_ObjectNode_ObjectNode_Object

JS对象(字符串和数组除外)

const public const Node_CodeNode_CodeNode_Code

编译后的代码

const public const Node_ClosureNode_ClosureNode_Closure

函数闭包

const public const Node_RegExpNode_RegExpNode_RegExp

正则表达式

const public const Node_HeapNumberNode_HeapNumberNode_HeapNumber

堆中排好序的数字

const public const Node_NativeNode_NativeNode_Native

Native对象(非v8堆上的)

const public const Node_SyntheticNode_SyntheticNode_Synthetic

Synthetic对象

const public const Node_ConsStringNode_ConsStringNode_ConsString

拼接的字符串

const public const Node_SlicedStringNode_SlicedStringNode_SlicedString

分割的字符串

const public const Node_SymbolNode_SymbolNode_Symbol

符号(ES6)

const public const Node_SimdValueNode_SimdValueNode_SimdValue

堆中排好序的SIMD值(ES7)

const public const Edge_ContextVariableEdge_ContextVariableEdge_ContextVariable

函数中的变量

const public const Edge_ElementEdge_ElementEdge_Element

数组中的元素

const public const Edge_PropertyEdge_PropertyEdge_Property

有名对象的属性

const public const Edge_InternalEdge_InternalEdge_Internal

JS无法进入的链接

const public const Edge_HiddenEdge_HiddenEdge_Hidden

指向需要事先计算出空间大小的节点

const public const Edge_ShortcutEdge_ShortcutEdge_Shortcut

指向无法事先计算出空间大小的节点

const public const Edge_WeakEdge_WeakEdge_Weak

一个弱引用(被GC忽视)

Method Summary

Type Method and Description
void saveSnapshot(String fname)

根据指定名称保存一个堆快照

HeapSnapshot loadSnapshot(String fname)

根据指定名称读取一个堆快照

HeapSnapshot takeSnapshot()

获取当前时间节点的堆快照,堆快照记录了当前时刻JS堆的状态

Object diff(Function test)

执行给定的函数,并对比执行前后 v8 堆的变化

Field Detail

Node_Hidden

const public const Node_HiddenNode_HiddenNode_Hidden

隐藏节点,当显示给用户时可以被过滤掉

Node_Array

const public const Node_ArrayNode_ArrayNode_Array

数组

Node_String

const public const Node_StringNode_StringNode_String

字符串

Node_Object

const public const Node_ObjectNode_ObjectNode_Object

JS对象(字符串和数组除外)

Node_Code

const public const Node_CodeNode_CodeNode_Code

编译后的代码

Node_Closure

const public const Node_ClosureNode_ClosureNode_Closure

函数闭包

Node_RegExp

const public const Node_RegExpNode_RegExpNode_RegExp

正则表达式

Node_HeapNumber

const public const Node_HeapNumberNode_HeapNumberNode_HeapNumber

堆中排好序的数字

Node_Native

const public const Node_NativeNode_NativeNode_Native

Native对象(非v8堆上的)

Node_Synthetic

const public const Node_SyntheticNode_SyntheticNode_Synthetic

Synthetic对象

Node_ConsString

const public const Node_ConsStringNode_ConsStringNode_ConsString

拼接的字符串

Node_SlicedString

const public const Node_SlicedStringNode_SlicedStringNode_SlicedString

分割的字符串

Node_Symbol

const public const Node_SymbolNode_SymbolNode_Symbol

符号(ES6)

Node_SimdValue

const public const Node_SimdValueNode_SimdValueNode_SimdValue

堆中排好序的SIMD值(ES7)

Edge_ContextVariable

const public const Edge_ContextVariableEdge_ContextVariableEdge_ContextVariable

函数中的变量

Edge_Element

const public const Edge_ElementEdge_ElementEdge_Element

数组中的元素

Edge_Property

const public const Edge_PropertyEdge_PropertyEdge_Property

有名对象的属性

Edge_Internal

const public const Edge_InternalEdge_InternalEdge_Internal

JS无法进入的链接

Edge_Hidden

const public const Edge_HiddenEdge_HiddenEdge_Hidden

指向需要事先计算出空间大小的节点

Edge_Shortcut

const public const Edge_ShortcutEdge_ShortcutEdge_Shortcut

指向无法事先计算出空间大小的节点

Edge_Weak

const public const Edge_WeakEdge_WeakEdge_Weak

一个弱引用(被GC忽视)

Method Detail

saveSnapshot

void saveSnapshot(String fname)

根据指定名称保存一个堆快照

Parameters

  • fname 堆快照名称
loadSnapshot

HeapSnapshot loadSnapshot(String fname)

根据指定名称读取一个堆快照

Parameters

  • fname 堆快照名称

Returns

返回读取到的堆快照

takeSnapshot

HeapSnapshot takeSnapshot()

获取当前时间节点的堆快照,堆快照记录了当前时刻JS堆的状态

Returns

返回获取到的堆信息快照

diff

Object diff(Function test)

执行给定的函数,并对比执行前后 v8 堆的变化

Parameters

  • test 给定要测试的函数

Returns

返回对比的结果