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

最近项目测试发现,运行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

一次UNITY闪退问题的定位心得的相关文章

Unity 接MM横屏闪退的原因

=.=研究了1天接SDK到处都在报错,于是使用logcat查看原因截取到这样的Exception. call to OpenGL ES API withno current context(logged once per thread)这个BUG,是因为android xml配置屏幕显示和Unity不匹配,导致程序闪退 配合节点: 如果你发现confiChanges和下面不一样,90%就是这个原因,在调用的页面添加以下节点. 上一次我接支付宝的SDK也是遇到这个问题.我想应该也是这个造成的 an

IOS8以上打开定位闪退的问题

今天碰到一个问题, 网上搜了很少搜到答案, 这里普及下: ios8以上在设置-隐私-定位服务下打开相应app的定位服务, 只要一点击, 设置页面(ios)就直接闪退到桌面, 是的不是app闪退, 是iOS设置页面闪退, 找寻原因是在info.plist中的NSLocationWhenInUseUsageDescription字段默认是Boolean类型, 需将它设置成String, 并且值也是YES, 这样就可以了, 目测苹果此处不接受Boolean类型, 所以直接闪退.

Android使用百度地图出现闪退及定位时显示蓝屏问题

 目录 1.Android使用百度地图出现闪退 2.Android使用百度地图定位出现蓝屏问题     1.Android使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.xml文件中未在application标签中配置 <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="D9Lh8MrrLMUuXdWMU8tRLtDsta6PoaYN" /> 但是

升级iOS10之后调用摄像头/麦克风等硬件程序崩溃闪退的问题

在升级到iOS10之后, 开发过程中难免会遇到很多的坑, 下面是一些常见的坑, 我做了一些整理, 希望对大家开发有帮助: &1. 调用视频,摄像头, 麦克风,等硬件程序崩溃闪退的问题: 要注意的问题 iOS10 对隐私权限的管理更为严格 ,比如访问的摄像头.麦克风等硬件,都需要提前请求应用权限.允许后才可以使用,或者现在要提前声明,虽然以往要求不严格. 在iOS10中比如遇到崩溃,日志: *This app has crashed because it attempted to access p

手游频繁崩溃”闪退”? 从程序上找原因

游戏程序 平台类型: iOS Android  程序设计: 算法逻辑/智能AI 服务器 数据库  编程语言: C/C++ Java  引擎/SDK: 其它  <ignore_js_op> 文 / 网易 Tjay(QA) 作为玩家,当游戏crash的时候是什么心情,如果这个游戏玩起来还不错的话,那我可能还会打开第二次,如果这个游戏一般的话我可能直接怒删了.当多次出现闪退crash的时候,这种糟糕的体验很容易让用户流失,造成很大的损失.但是作为测试人员,面对如此棘手的事情,首先要做的是协助开发组解

阿里客户端工程师试题简析——Android应用的闪退(crash)分析

1. 问题描述 闪退(Crash)是客户端程序在运行时遭遇无法处理的异常或错误时而退出应用程序的表现,请从crash发生的原因分类与解决方法.在出现crash后如何捕捉并分析异常这两个问题给出自己的解决方案. 我们以Android平台为例,介绍下如何捕获Android应用的闪退信息,以帮助我们定位和解决导致闪退的问题代码. 2. Android中的闪退 在讲解Android中的闪退之前,我们先来简单的复习下Java中的异常. (1)Java中的异常 Java中的异常层次结构如下图所示: 我们可以

阿里安卓面试分析: Android应用的闪退(crash)问题跟踪和解析

一:问题描述    闪退(Crash)是客户端程序在运行时遭遇无法处理的异常或错误时而退出应用程序的表现,请从crash发生的原因分类与解决方法.在出现crash后如何捕捉并分析异常这两个问题给出自己的解决方案.    我们以Android平台为例,介绍下如何捕获Android应用的闪退信息,以帮助我们定位和解决导致闪退的问题代码.二:Android中的闪退    在讲解Android中的闪退之前,我们先来简单的复习下Java中的异常.1.Java中的异常    Java中的异常层次结构如下图所

java web工程发布以及解决tomcat闪退

1.tomcat闪退 a.环境变量错误 startup.bat最后假如PAUSE进入调试状态,双击startup.bat,可以看到错误,根据错误提示设置相应的环境变量,JAVA_HOME等. b.eclispe设置问题,当eclispe server locations选项为第一项时,tomcat无法独立运行,由于本人学术不精,只定位出问题所在,还望大神帮答问题所在原因. 2.eclipse发布web工程 a.将server locations设置为可配状态 右键server,选择Add and

Unity3D游戏在iOS上因为trampolines闪退的原因与解决办法

http://7dot9.com/?p=444 http://whydoidoit.com/2012/08/20/unity-serializer-mono-and-trampolines/ 确定具体原因 那么好吧,打一个测试版本再来看,然后再等着崩溃,查看崩溃日志吧,最终看到的崩溃日志中,崩溃线程输出信息如下: Thread 27 Crashed: 0 libsystem_kernel.dylib 0x38e671fc __pthread_kill + 8 1 libsystem_pthrea