用正确的方式,三天搞定Mono堆内存泄漏!

用正确的方式,三天搞定Mono堆内存泄漏!

堆内存泄露可谓项目的“癌症”之一,其泄露方式多种多样,让大多数研发团队无法入手,更有不知多少项目因此而搁浅。为此,UWA今天推出了堆内存分析功能,帮助大家在解决堆内存泄漏的问题时能够有的放矢。该功能已在UWA多次的深度优化项目中得到验证:仅需三天,彻底告别堆内存泄漏!
请输入图片描述


一、堆内存分析报告界面

如下图,用户可以在报告的设备列表(右上角)中选择“Mono”,就可以看到对应的堆内存分析报告。该报告主要提供 堆内存具体分配 和 堆内存泄露分析 两大功能。下面我们将对这两个功能分别说明。
请输入图片描述
Mono 堆内存分析报告界面


二、堆内存具体分配

相较于之前UWA报告中的Top堆内存函数功能,新增的堆内存具体分配会更详尽地标明其堆内存分配的出处,让用户对代码的堆内存分配一目了然,从而进行快速定位以及优化逻辑代码的堆内存开销。
请输入图片描述
堆内存具体分配界面

如上图所示,UWA报告中可以查看深度的代码内存分配堆栈,对于到底哪些函数分配了多少堆内存,研发团队可以一目了然。同时,我们对逻辑代码进行分析和筛选,将System函数、Unity函数和逻辑代码函数进行区分,便于用户进行针对性的优化。


三、堆内存泄露分析

该功能将分析Mono堆内存的实际占用情况,在堆内存泄露分析界面,我们会根据用户的不同级别,列出不同数量的逻辑代码数量。点击特定的函数名,即可进入相应的代码界面。
请输入图片描述
UWA堆内存泄漏分析界面

函数界面中会显示该函数在游戏运行过程中的真实堆内存占用情况。同时,点击下方柱状图中任何一个条形柱,都能看到其详细的堆内存实际使用情况。

请输入图片描述
请输入图片描述

另外,通过点击上图右方的“蓝色箭头”,可以查看某些函数中生成的驻留在内存中的详细变量情况,从而让你更快地判断和定位堆内存的泄露点。

请输入图片描述

如何查看堆内存泄漏?
用户可以通过选择柱状图中的任意两次内存采样,对内存变化进行比较,从而可以捕捉到具体的泄露函数,以及泄露的具体内存和变量。

请输入图片描述

愚人节不愚你,限时免费!

如此实用高效的功能,是否想抢先试用下呢?这里小编将再增重磅福利:即日起至六月底,凡是在UWA上提交性能检测的用户均可免费使用该功能(原为专业会员权益),福利每人都有,快来给自己的项目进行一次彻底的查漏补缺吧!
请输入图片描述

又给大家安利了一波福利,小编自我感觉萌萌哒~

  • Technology Sharing 89 发表在 2018年12月16日 回复

    [...]*Use the right way to get the Mono heap memory leak in three days! [...]