最近项目测试发现,运行unity后不退出运行模式,玩了一局后点击 “再来一局”,反复十几局后unity崩掉。
经观察,发现在这十几局的过程中,unity占用内存不断上升,由3.2G左右上升到3.6G左右就崩掉。这似乎是内存不足引起的,但很奇怪,我有8G内存,怎么才涨了400M就崩了呢。
最终发现:这是由于项目中的地图类在每一局游戏结束时没有释放相关的引用,地图类中有几个大的二维数组,int32 arr[625][8000],由于这种二维数组在内存中必须连续,多局以后会造成很多内存碎片,最后导致无法再次申请如次大的数组而崩溃。
可见,崩溃的原因不是内存不足,而是大块内存不足,内存碎片严重了。
内存查找的工具是:unity2018.3的new memprofiler
原文地址:https://www.cnblogs.com/timeObjserver/p/10561276.html
时间: 2024-10-13 01:43:41