一次UNITY闪退问题的定位心得

Posted timeobjserver

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次UNITY闪退问题的定位心得相关的知识,希望对你有一定的参考价值。

最近项目测试发现,运行unity后不退出运行模式,玩了一局后点击 “再来一局”,反复十几局后unity崩掉。

经观察,发现在这十几局的过程中,unity占用内存不断上升,由3.2G左右上升到3.6G左右就崩掉。这似乎是内存不足引起的,但很奇怪,我有8G内存,怎么才涨了400M就崩了呢。

最终发现:这是由于项目中的地图类在每一局游戏结束时没有释放相关的引用,地图类中有几个大的二维数组,int32 arr[625][8000],由于这种二维数组在内存中必须连续,多局以后会造成很多内存碎片,最后导致无法再次申请如次大的数组而崩溃。

可见,崩溃的原因不是内存不足,而是大块内存不足,内存碎片严重了。

 

内存查找的工具是:unity2018.3的new memprofiler

以上是关于一次UNITY闪退问题的定位心得的主要内容,如果未能解决你的问题,请参考以下文章

unity导入jar包真机运行闪退问题

Unity 报错之 打包安卓闪退 Could not allocate memory: System out of memory

Unity 报错之 打包安卓闪退 Could not allocate memory: System out of memory

Unity 发布 Mac 闪退白屏问题记录

Unity 发布 Mac 闪退白屏问题记录

记一次Unity极限减少包体大小