ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Unity内存管理与GC优化

Unity内存管理与GC优化 一、cpu如何访问内存内存结构三级缓存ram和主内存rom答案先行后列二维数组内存按行连续存放内存对齐编译器在分配变量内存地址时按照特定字节边界如4字节、8字节来放置数据二、操作系统如何管理内存内存交换将内存中暂时不用的数据交换到硬盘虚拟内存文件中以腾出物理内存。三、Unity如何使用内存mangerd memory托管堆profiler性能分析器四、unity如何管理内存栈内存在编译阶段就已经分配好所以相对来说比较小内存碎片堆内存分配零碎产生容易产生内存浪费将字符串、类对象存放在堆内存中引用类型栈赋值是深拷贝堆赋值是浅拷贝栈因为内存排列整齐以连续内存存储内存分配的时候做简单加减法因此分配、释放快速堆通过链表的访问找到一块合适大小的空间进行分配五、GC优化GC机制当一个对象的RefCount引用次数值为0时被当作垃圾内存回收GC触发时机1.定时回收2.堆分配时堆上的可用内存不足3.手动强制GC。GC.Collect()GC优化1.提前缓存不会变的对象而不是在经常调用的函数中生成2.通过条件判定减少会产生GC的函数执行次数3.降低会产生GC的函数的执行频率4.清空容器以便于反复使用容器6.减少字符串操作7.为解决tag比较会产生的GCunity特意写出的API8.装箱值类型转换为引用类型9.协程使用yield return会返回一个枚举器11.手动强制GC
返回列表