Unity5 增加和改善了许多功能:Unity 现为 64 位,完全多线程, NVIDIA PhysX 3.3,更轻松、增量式地建立资源包,新 2D 物理效应器,SpeedTree 集成,NavMesh 改善,动画的直接混合树,加载优化,WebGL 插件预览版,Enlighten 实时全局光照,实时光照贴图预览,高级着色器系统,音频革新,Unity Cloud。
1.内存
内存域
a.内部内存,包括asset data,gameObjects,engine internals
b.mono托管, 包括脚本类,封装unity类
c. 本地dll或者扩展dll
本地内存内部分配包括 default,GameObject,GFx,Profiler
内存托管
1. 值类型 (int,bool,float,struct,...)
存在内存栈中,当释放掉从栈中移除,没有产生垃圾
2.引用类型(class)
存在内存堆中,当长时间不引用会被GC移除.
如何减少GC浪费
1.用对象池重用对象
2.能用struct不用class
3.system.GC.Collect手动回收
4.手动释放一些没用的引用
5.不用FindObjects 或者LinQ
6.当字符串连接用stringBuilder代替string
7.用CompareTag()代替.tag
8.Resources.UnloadUnusedAssets,Resources.UnloadAsset
9.用多线程收集垃圾
未完待续。