一次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 报错之 打包安卓闪退 Could not allocate memory: System out of memory
Unity 报错之 打包安卓闪退 Could not allocate memory: System out of memory