unity学习笔记
https://blog.csdn.net/zhuangyou123/article/details/38336031?locationNum=14&utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.essearch_pc_relevant&spm=1001.2101.3001.4242.1
记一下大佬写的关于出现内存溢出问题的原因分析
在我的项目里内存溢出是里面的通过www一次行获得的数据量过多导致的内存溢出.这里记录一下
2021.11.11更新
上面说的内存溢出,发现不是获得的数据量太多导致的,而是在对数据进行处理的时候导致的
在同事的大力支持下,我找到了解决的办法,这里说一下思路
一开始我是尝试通过lua对数据进行分析的没报错,但移动端对lua的读取加载还不是太熟所以后面还是决定自己对数据进行处理
使用的方法是上一个帖子也写出来了
核心是使用string对字符串进行处理
但在打包的时候一旦遇到数据过多的情况,就会出现内存溢出的异常,而且读取多了的时候还会直接闪退
在思考了之后分析可能是string在while的时候substring是在内存里新建一个string进行储存,可能就是在这个过程中内存里创建了太多没用的string,一直在占用没有回收导致的内存溢出
知道了问题所在之后就好解决了,后面使用了stringbuilder进行字符串的获取和处理
这个类可以理解为是string的升级版,它会在string长度不够的情况下自动申请更大内存的调用
而且这个类提供了更多方便的方法让我们对字符串进行处理
比如remove和replace
总的来说就是以后对字符串的处理用stringbuilder会更稳定安全方便一点