Js Memory抓取和展示说明

Js Memory是查看程序中存量内存的情况。

Js Memory的抓取

Js Memory抓取配置参数

GitHub Logo
配置参数说明:

再点击Record setting,在output file path输入文件名hiprofiler_data_jsmemory.htrace,拖动滚动条设置buffer size大小是64MB,抓取时长是30s。
GitHub Logo

点击Trace command,就会根据上面的配置生成抓取命令,点击Record抓取,抓取过程中会显示抓取时长。
GitHub Logo

Js Memory展示说明

将抓取的jsmemory文件导入到smartperf工具中查看,查看程序中存量内存的情况。

Js Memory泳道图展示类型

堆快照类型文件的泳道图展示。
GitHub Logo

时间轴上分配插桩类型文件的泳道图展示。
GitHub Logo

Js Memory泳道图的框选功能

可以对内存的数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有两个tab页。
Summary的Tab页,主要显示了总览视图,通过类的名称来分组显示对象。
GitHub Logo

    class X {
        a: number = 0;
        b: boolean = false;
        c: ChartStruct = new ChartStruct();
    }
    假设当前是在64位系统, 对于类X来说, 一个X实例的Shallow Size为:

    类定义的8byte
    没有继承其他类, 所以没有父类fields
    a,b变量为基本类型number,boolean型, js中都为8byte; 
    c变量是引用类型, 和它是否指向具体实例无关, 固定占4byte

Comparison的Tab页,主要显示了比较视图,显示两份快照间的不同之处,主要比较类创建与释放的实例数量。
GitHub Logo

Js Memory的辅助信息功能

在Summary和Comparison的Tab页,选中左边实例,右边Retainers的Tab页会显示多少个实例引用了左边选中的实例。
GitHub Logo

Js Memory详细显示的过滤功能

在下方的Class Filter中输入类名,可以对类名进行过滤,如下图输入array,会过滤出类名是array的相关数据。
GitHub Logo