ebchina 发表于 2024-7-15 18:04

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

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

风雨路人 发表于 2024-7-15 18:04

少用class

kuokuo123 发表于 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

woyyaizn 发表于 2024-7-15 18:06

减少临时对象分配:
    缓存、复用现有对象
    使用对象池

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

使用Profiler监控GC分配
页: [1]
查看完整版本: 如何对Unity代码中的GC进行优化?