位置: 编程技术 - 正文
推荐整理分享【Unity】减少GC回收(unity减少drawcall),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity减少drawcall方法,unity怎么优化,unity怎么缩小,unity减少drawcall方法,unity中怎么避免内存泄漏,unity中怎么避免内存泄漏,unitygc优化,unitygc优化,内容如对您有帮助,希望把文章链接给更多的朋友!
两种情况GC会被触发:
首先当然是我们的堆的内存不足时,会自动调用GC。其次呢,作为编程人员,我们自己也可以手动的调用GC。减少GC回收要注意一下问题:
字符串连接的处理。使用StringBuilder或String.Format来代替而不是用””来进行连接。因为将两个字符串连接的过程,其实是生成一个新的字符串的过程。而之前的旧的字符串就成为了垃圾。而作为引用类型的字符串,其空间是在堆上分配的,被弃置的旧的字符串的空间会被GC当做垃圾回收。尽量不要使用foreach,而是使用for。foreach会涉及到迭代器enumerator的使用,而据传说每一次循环所产生的迭代器会带来 Bytes的垃圾。那么循环次就是Bytes。不要直接访问gameobject的tag属性。比如if (go.tag == “human”)最好换成if (go.CompareTag (“human”))。因为访问物体的tag属性会在堆上额外的分配空间。如果在循环中这么处理,留下的垃圾更多。使用“池”,以实现空间的重复利用。尽可能避免使用LINQ。部分功能无法在某些平台上使用,会分配大量GC Alloc。而且我很讨厌LINQ的一点就是它有可能在某些情况下无法很好的进行AOT编译。比如“OrderBy”会生成内部的泛型类“OrderedEnumerable”。这在AOT编译时是无法进行的,因为它只是在OrderBy的方法中才使用。所以如果你使用了OrderBy,那么在IOS平台上也许会报错。GameObject.GetComponet()会引起GC的分配。协程Coroutine,开启一个协程,至少分配的内存。参考文章:深入浅出聊优化:从Draw Calls到GC
Unity亚洲开发者大会会议简录之技术篇
解决Unity中,使用Ngui 的默认字体Arial,在部分Android设备显示中文不清楚,或者显示不出来问题 原文地址:
Unity 编辑器下控制播放粒子 在Unity编辑器的Scene视图进行控制播放粒子ParticleSystem,可以借助方法Simulate,具体可以参照以下例子:创建一个空对象ParticleAll,在这个对象下添加一个
[教程]手把手教你制作高通虚拟按钮 突然发觉距离上一篇博文已经好久的了,想写,但是不知道要写一些什么。今天趁着此时还没有关电脑,记录记录高通虚拟按钮(VirtualButton)那点事。当
标签: unity减少drawcall
本文链接地址:https://www.jiuchutong.com/biancheng/381470.html 转载请保留说明!上一篇:unity 写批量打包工具时遇到的一个问题(unity打包全屏)
下一篇:解决Unity中,使用Ngui 的默认字体Arial,在部分Android设备显示中文不清楚,或者显示不出来问题(unity-chan)
友情链接: 武汉网站建设