dumpsys meminfo 查看内存泄漏

2024年2月26日 Jerry 375 2024年2月26日

雷电模拟器运行自己编写的app,如何使用dumpsys meminfo 命令查看内存泄漏? 首先,说一下怎么连接雷电模拟器。

1、雷电模拟器安装路径都自带 adb,找到安装路径:

图片alt

2、进入文件夹 cmd 命令行运行命令 adb start-server

3、执行命令 adb devices

图片alt 可以看到显示了模拟器

4、执行命令 adb shell 再运行 dumpsys meminfo 即可 查看内存信息

图片alt

关于dumpsys的使用可参考官网:https://developer.android.google.cn/tools/dumpsys?hl=zh-cn#meminfo

怎么判断有没有内存泄漏???

要使用dumpsys meminfo命令来检查是否存在内存泄漏,您可以按照以下步骤进行操作:

  1. 连接到您的Android设备或模拟器,并打开命令行终端。

  2. 输入以下命令来获取设备上正在运行的进程的列表:

adb shell dumpsys meminfo

这将显示当前设备上所有进程的内存信息。

  1. 找到您关注的应用程序的进程。您可以根据应用程序的包名或进程名称来查找。通常,应用程序的包名与应用程序在设备上的显示名称相同。

  2. 在进程列表中找到您的应用程序,然后查找其"Total PSS by OOM adjustment"部分。这一部分显示了应用程序在不同"OOM(Out of Memory)调整级别"下的内存使用情况。

  3. 如果在不同的OOM级别下,应用程序的总内存使用量(Total PSS)差异很大,特别是在较高的OOM级别下,可能表示存在内存泄漏。

  4. 另外,关注"Objects"一节,它提供了有关Java对象的信息。如果在应用程序的内存使用中,对象的数量持续增长,可能也是内存泄漏的迹象之一。

请注意,dumpsys meminfo命令提供了大量的内存信息,包括各种不同的指标和统计数据。 要查看dumpsys meminfo输出中的哪些数值可以用于判断是否存在内存泄漏,以下是一些关键的指标和信息:

  1. Total PSS by OOM adjustment:这一部分显示了应用程序在不同"OOM(Out of Memory)调整级别"下的内存使用情况。OOM调整级别反映了系统对应用程序的内存优先级。如果在较高的OOM级别下,应用程序的总内存使用量(Total PSS)显著高于其他级别,可能表示存在内存泄漏。

  2. Java Heap:这一部分提供了Java堆内存的使用情况,包括已分配的堆内存、已使用的堆内存和堆内存的最大大小。如果已分配的堆内存持续增长,而已使用的堆内存没有相应减少,可能表示存在内存泄漏。

  3. Objects:这一部分提供了有关Java对象的信息,包括对象的数量、大小和分配的内存。如果在应用程序的内存使用中,对象的数量持续增长,而未被释放的对象占用了大量内存,可能也是内存泄漏的迹象之一。

  4. Summary:这一部分提供了应用程序的内存总结信息,包括应用程序的总内存使用量、共享内存和图形缓冲区的使用情况等。如果总内存使用量持续增长,而没有明显的释放或减少,可能表示存在内存泄漏。

这些指标只是dumpsys meminfo输出中的一部分,您可以根据具体情况和需求,结合其他信息来判断是否存在内存泄漏。在分析内存信息时,应该关注内存使用量的变化趋势、不同指标之间的关系以及异常的表现。如果您不确定如何解释结果或如何判断是否存在内存泄漏,建议参考Android开发者文档或专业的内存分析工具来获得更准确的判断和解释。


原创文章,转载请注明出处: https://jerrycoding.com/article/dumpsys-meminfo

微信
jerry微信赞助
支付宝
jerry支付宝赞助

您尚未登录,暂时无法评论。请先 登录 或者 注册

0 人参与 | 0 条评论