找回密码
 立即注册
查看: 152|回复: 4

如何对Unity代码中的GC进行优化?

[复制链接]
发表于 2024-7-15 18:04 | 显示全部楼层 |阅读模式
如何对Unity代码中的GC进行优化?
发表于 2024-7-15 18:04 | 显示全部楼层
少用class
发表于 2024-7-15 18:05 | 显示全部楼层
不写代码就好了
发表于 2024-7-15 18:05 | 显示全部楼层

  • 如果你有一些值类型的数据,比如Vector2、Vector3,这些值类型的数据类型,如果直接使用C#的值类型的数据,中间会存在数据类型转换,从而产生GC,所以应该基于托管栈重新实现值类型的代码绑定
  • 在一些频繁调用的方法里(比如Update方法)要避免使用params可变参数列表,因为params会动态new数组出来,如果每一帧都去new一个数组就会产生大量GC
详细内容可以参考下方完整视频

一小时极速掌握ILRuntime热更新
https://www.zhihu.com/video/1545127996750516225

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2024-7-15 18:06 | 显示全部楼层
减少临时对象分配:
    缓存、复用现有对象
    使用对象池

避免装箱:
    避免将值类型转为引用类型(object、接口)
    避免将enum作为Dictionary的键

使用Profiler监控GC分配
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-21 20:33 , Processed in 0.103822 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表