输出说明
msLeaks工具进行内存分析后,输出的文件如表1。
输出文件名称  | 
说明  | 
|---|---|
leaks_dump_{timestamp}.csv  | 
使用内存泄漏分析功能时,输出内存信息结果文件,并默认保存在“leaksDumpResults/dump”目录下,具体详情信息可参见leaks_dump_{timestamp}.csv文件说明。  | 
{device}_trace_{timestamp}.json  | 
使用内存泄漏分析功能时,输出可视化内存信息结果文件,并默认保存在“leaksDumpResults/trace”目录下,具体详情信息可参见{device}_trace_{timestamp}.json文件说明。  说明:  
在MindStudio 8.3.0版本中,将不再落盘json文件,结果通过屏幕打印显示。  | 
memory_compare_{timestamp}.csv  | 
使用内存对比功能时,输出内存对比信息结果文件,记录的是基线内存信息、对比内存信息和对比后的内存差异信息,输出文件默认保存在“leaksDumpResults/compare”目录下,具体详情信息可参见memory_compare_{timestamp}.csv文件说明。  | 
leaks_dump_{timestamp}.db  | 
db格式的内存信息结果文件,可使用MindStudio Insight工具展示,展示结果及具体操作请参见《MindStudio Insight工具用户指南》中的“内存调优”章节。  | 
python_trace_{TID}_{timestamp}.csv  | 
Python Trace采集的结果文件,默认保存在“leaksDumpResults/dump”目录下,具体详情信息可参见python_trace_{TID}_{timestamp}.csv文件说明。  | 
leaks_dump_{timestamp}.csv文件说明
字段  | 
说明  | 
|---|---|
ID  | 
事件ID。  | 
Event  | 
msLeaks记录的事件类型,包括以下几种类型: 
  | 
Event Type  | 
事件子类型。 
  | 
Name  | 
与Event值有关,当Event值为以下值时,Name代表不同的含义。当Event值为其余值时,Name的值为N/A。 
  | 
Timestamp(ns)  | 
事件发生的时间。  | 
Process Id  | 
进程号。  | 
Thread Id  | 
线程号。  | 
Device Id  | 
设备信息。  | 
Ptr  | 
内存地址,可以作为标识内存块的id值,一个内存块的生命周期是同一个ptr的malloc到下一次free。  | 
Attr  | 
事件特有属性,每个事件类型有各自的属性项。具体展示信息如下所示: 
  | 
Call Stack(Python)  | 
Python调用栈信息(可选)。  | 
Call Stack(C)  | 
C调用栈信息(可选)。  | 
{device}_trace_{timestamp}.json文件说明
可视化内存信息输出文件包含两种json文件,分别为cpu_trace_{timestamp}.json(Host侧可视化文件)和npu{id}_trace_{timestamp}.json(device侧可视化文件),其中id代表的是device id,例如npu0_trace_{timestamp}.json。
文件可通过Chrome trace(chrome://tracing/)或Perfetto(Perfetto UI)等可视化工具展示,如图1所示。

文件  | 
名称  | 
说明  | 
|---|---|---|
Host侧  | 
Process PID  | 
kernelLaunch打点信息。名称中的PID代表的是进程号。  | 
memory size  | 
cpu上内存信息。当开启Host侧内存采集功能后,会采集到该参数。  | 
|
pin memory size  | 
hal侧申请的host锁页内存。  | 
|
Device侧  | 
Process PID  | 
kernelLaunch打点信息。名称中的PID代表的是进程号。  | 
{Framework Name} allocated memory size  | 
对应框架的内存池allocated信息。  | 
|
{Framework Name} reserved memory size  | 
对应框架的内存池reserved信息。  | 
|
Thread TID  | 
各Step的持续时间。名称中的TID代表的是线程号。  | 
|
mstx 0  | 
mstx打点信息。  | 
|
Thread 0  | 
长时间未释放Step间的内存信息。  | 
memory_compare_{timestamp}.csv文件说明
内存对比的结果文件字段解释如表4所示。
字段  | 
说明  | 
|---|---|
Event  | 
msLeaks记录的对比事件类型,包括OP_LAUNCH和KERNEL_LAUNCH两种类型。  | 
Name  | 
kernel的名称。  | 
Device Id  | 
设备类型、卡号。  | 
Base  | 
input输入的第一个文件路径中的数据。  | 
Compare  | 
input输入的第二个文件路径中的数据。  | 
Allocated Memory(byte)  | 
kernel调用前后的内存变化。 如果为N/A,表示不存在该kernel的调用。  | 
Diff Memory(byte)  | 
Base和Compare的内存相对变化。 
  | 
