19.调试相关-AndroidLogcat-内存窗口工具
19.1 知识点
内存窗口工具的作用
在学习之前,首先了解 RAM(运行时内存)对于我们的意义。如果应用程序出现闪退情况,往往都是因为应用程序运行时内存的使用超出了设备允许的最大内存量,而被手机系统强行关闭。
注意:
不同品牌、型号的手机配置都是不同的,手机后台运行的程序数量也是不同的,所以要根据实际情况进行测试获取目标设备的内存极限值,可以选取市面上的主流机型来进行测试。
今天我们要学习的内存窗口工具是用于跟踪应用程序 RAM(运行时内存)的分配情况的。我们可以使用它来分析应用程序可能存在的内存问题。我们可以使用它定期自动的或者手动的捕获内存快照。这里的内存快照就是捕获的这一瞬间应用程序的运行时内存使用情况。
根据内存快照我们可以分析内存问题,比如:
- 切换场景前和切换场景后的内存快照比较,判断是否存在内存泄露。
- 闪退前的内存快照,来分析设备占用多少内存时造成了闪退,确定内存瓶颈,等等。
打开内存窗口
内存窗口工具的使用
内存窗口选项
Auto Capture:自动捕获
Unity会定期捕获应用程序的内存快照,内存会自动更新,直接点击某时间条。注意:自动捕获可能会影响性能表现,可能会造成卡顿,如果严重影响测试,建议使用手动捕获。Manual Capture:手动捕获
通过点击按钮,自己手动捕获内存快照。Disabled:不启用
内存窗口下方
A:内存详细信息面板,显示每种内存类型分配的内存量。
- Group:内存组
- Resident Set Size:常驻集大小,应用程序在运行时内存中分配的内存总量。
- Proportional Set Size:比例集大小,应用程序主动使用的运行时内存总量,一般选这个看,全一点。
- Heap Alloc:堆分配,应用程序使用 Java 分配器和本机堆分配的内存总量,当检查内存泄露时,通过它可以进行很好的分析。
- Heap Size:堆大小,应用程序保留的总内存,总是大于堆分配。
- 内存分类:
- NativeHeap 本地堆
- JavaHeap Java 分配器堆
- Code 代码
- Stack 栈
- Graphics 图形相关
- PrivateOther 其它私有的
- System 系统
- Total 总共的
- Group:内存组
B:内存图表,包含一段时间内连接的应用程序分配的内存图表。
总结
内存窗口工具可以帮助我们调试分析应用程序的内存问题,它是非常重要的调试工具。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com