码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-03-19 21:22:13      阅读:959      评论:0      收藏:0      [点我收藏+]

标签:地图   内存   观察   数组   new   项目   bsp   可见   退出   

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

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

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

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

 

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

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

标签:地图   内存   观察   数组   new   项目   bsp   可见   退出   

原文地址:https://www.cnblogs.com/timeObjserver/p/10561276.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!