当前位置: 首页 > news >正文

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比较会产生的GC,unity特意写出的API

8.装箱:值类型转换为引用类型

9.协程使用yield return会返回一个枚举器

11.手动强制GC

http://www.jsqmd.com/news/1365059/

相关文章:

  • Unity Shader空间变换:从模型到屏幕的坐标转换原理与实践
  • 装修避坑攻略|基于抖音小红书装修博主推荐:2026上海装修公司值得信赖的10家装企 - 资讯综合
  • 企业级数据中心升级:核心模块与优化策略
  • Scarab:空洞骑士模组管理神器,三分钟上手完全指南
  • 【C++ 面试真题】C++ 的 const 和 constexpr 有什么区别?
  • FPGA五级流水线CPU设计:从零实现RISC架构处理器
  • 基于Qt与C++的国际象棋网络对战系统开发全解析
  • Unity粒子系统进阶:模块化设计打造魔法阵爆炸特效
  • 从统一存储到智能底座:一个企业文件管理系统的全迭代演进复盘
  • 2026武汉装修预算怎么省?意米装饰设计+半包500-700元/㎡,附报价单对比 - 品牌红黑榜
  • 2026AI人才缺口超10万!收藏这份高薪岗位入行指南,普通人也能抓住机会
  • 深圳除甲醛五星口碑推荐:甲级资质正规品牌的真实施工案例指南版 - 环保除醛知识库
  • 「种草大误区」你做的是有复利的“品牌种草”,还是纯纯给行业做贡献的“产品种草”?
  • 音频可视化项目部署指南:从环境搭建到效果验证的完整实践
  • AI原生开发规范与工具选型:speck-kit与openspec深度对比与实践指南
  • 无锡篮式砂磨机厂家有哪些?十家篮式砂磨机生产厂家综合盘点(附选型建议) - 行业甄选智库
  • 从拼错一个单词到命中正确业务数据,深入理解 SAP HANA 与 ABAP CDS 的 Fuzzy Search
  • Linux操作系统:进程(1)
  • Redis高性能背后的线程模型解析
  • 2026年浙江省高校计算机二级Python考试备考指南
  • 免费微信投票评选活动怎么制作?海投票 2026 图文/视频搭建指南 - 微信投票小程序
  • Tomcat乱码问题全面解析与解决方案
  • Harness
  • 2026 秋季新版语文课堂笔记 全年级上册人教版无水印
  • 温州全屋定制避坑指南:从行业乱象到靠谱选择 - 国麟测评
  • SAP学习笔记 - FICO02 - 会计基础,GUI的使用技巧,Spro设定-OX15,OX45,OB38,OBC4,OBC5,OB29,OB52等待,建立科目,过账
  • [Android 从零到一] Hilt 在多模块项目中的落地实战:依赖注入的边界与模块化设计
  • UE5增强输入与GAS整合:构建数据驱动的RPG角色移动系统
  • Cocos Creator塔防游戏源码深度解析与二次开发实战指南
  • 工业网关设计:Modbus转MQTT协议转换实践