rawheap-translator工具
使用场景
为方便开发者定位问题,应用在ArkTS内存OOM(Out of Memory)时会自动进行HeapDump。此操作会将虚拟机当前堆上的所有对象信息保存在后缀为.rawheap的二进制文件中。开发者可使用rawheap_translator工具解析.rawheap文件,生成.heapsnapshot文件。该文件可通过DevEco Studio的Heap Snapshot离线导入或Chrome浏览器的开发者工具中的内存工具导入并查看。
使用指导
工具获取
此工具支持OHOS、Windows、Linux和MacOS平台,获取方法如下:
- 设备内获取:/bin/rawheap_translator,仅适用于OHOS设备。
- SDK中获取:sdk/default/openharmony/toolchains/rawheap_translator,适用于各平台。
环境配置
对于OHOS平台,由于其已在系统路径下内置了rawheap_translator工具,因此可以在终端中直接使用此工具。
对于非OHOS平台,建议将从SDK中获取的rawheap_translator工具放置在稳定的路径下,并将该路径配置为系统环境变量。这样可以在终端中直接使用工具,无需每次指定路径。
在不同系统中,环境变量的配置方法存在差异。以下提供一些配置示例,供开发者参考。
-
Windows环境变量设置方法(以Windows 10某版本为例)。
- 右键点击“此电脑”选择“属性”选项。
- 在弹出的窗口中,找到并点击“高级系统设置”标签。
- 在弹出的窗口中,找到并点击“高级”页签下的“环境变量”按钮。
- 在弹出的窗口中,找到并双击“系统变量”框中的“Path”变量。
- 在弹出的窗口中,找到并点击“新建”按钮。
- 将本地存放rawheap_translator工具的文件路径填至新建的文本框中。
- 点击“确定”按钮关闭所有弹出的窗口。
- 重启终端。
-
MacOS环境变量设置方法(以MacOS 15某版本为例)。
-
打开终端工具,执 行以下命令。
echo $SHELL -
根据步骤1的返回结果做如下对应处理。
a. 如果返回结果为/bin/bash,则执行以下命令:
echo 'export PATH=$PATH:/path/to/your/rawheap_translator' >> ~/.bash_profilesource ~/.bash_profileb. 如果返回结果为/bin/zsh,则执行以下命令:
echo 'export PATH=$PATH:/path/to/your/rawheap_translator' >> ~/.zshrcsource ~/.zshrc
-
使用方法
解析命令
rawheap_translator [rawheap_file] [heapsnapshot_file]
参数列表
| 选项 | 必选 | 描述 |
|---|---|---|
| [rawheap_file] | 是 | 需要解析的应用OOM时生成的.rawheap文件路径。 |
| [heapsnapshot_file] | 否 | 解析生成的heapsnapshot文件路径,路径必须具有读写权限。 参数缺省时,默认为当前执行命令的路径。 参数给定时,文件的后缀名必须是heapsnapshot。 |