unity3d引擎缓存优化技术_Unity3D性能优化——CPU篇

本文介绍了Unity3D性能优化中的CPU优化,重点关注缓存和对象池技术。通过缓存GameObject、GetComponent等常用对象,减少不必要的函数调用来提升性能。此外,介绍了对象池的概念,用于优化对象的创建和销毁,减少Instantitate和Destroy的性能开销,以实现更高效的内存管理。最后,文章强调了避免CPU峰值和减少GC操作的重要性。
摘要由CSDN通过智能技术生成

本篇难度:★★★☆☆

请注意,单独观看本文是不太容易吸收的。正确的食用方式,是手边打开一个具体的项目,然后结合项目参考文章看看是否有能改进的地方,再对症下药。

大噶好,咱们又见面了。我们在前一篇文章中讲到了Unity性能分析工具的用法,以及在我们实际项目中所用到性能分析的思路。从这篇文章开始,我们从Unity性能优化的几个方面来逐步讲解unity中具体的优化方法和作用。

就当前的游戏优化而言,主要是围绕CPU、渲染、内存,三大方面来进行,而这三大方面又可以细分很多模块,比如在CPU中有渲染、 物理、 脚本、 GC、UI、垂直同步以及全局光照等模块。

本系列之后的文章,我们从以上三个大方向,来具体的介绍。

CPU性能优化

CPU 优化主要以性能分析为引,根据分析所得的数据,找到性能问题,以便快速并定向的优化项目。在我们之前的文章中有提到,CPU usage profiler会统计渲染、 物理、 脚本、 GC、UI、垂直同步以及全局光照等模块的 CPU 使用情况。

首先我们再了解一个工具,在我们的项目中,可以在Game视图点击stats开启Statistics窗口(渲染统计窗口),该窗口显示游戏运行时,渲染、声音、网络状况等多种统计信息,帮助我们分析游戏性能。

首先我们来了解几个概念性的问题

垂直同步

关于垂直同步的问题,我们在之前的工具篇中就有提到,想要了解的读者可以看看之前的文章,如果要深入了解,可能需要参考一些教程,在本文中就不做过多的阐述。朔宇:Unity3D性能优化——工具篇​zhuanlan.zhihu.com渲染

在unity中GPU和CPU渲染也是一个很大的话题,在之后的文章中,会提到渲染问题,在这里我们只需要大致的了解什么是Batches和Draw Call。

在我们进行游戏优化时,常会听到要减少Draw Call。Draw Call实际上就是一个命令,它的发起方是CPU,接收方是GPU,这个命令仅仅会指向一个需要被渲染的图元列表,而不会再包含任何材质信息。 当给定一个Draw Call时,GPU就会根据渲染状态和所有输入的顶点数据来进行计算,最终输出成屏幕上显示的像素。

引擎每对一个物体进行一次DrawCall,就会产生一个Batch,这个Batch里包含着该物体所有的网格和顶点数据,当渲染另一个相同的物体时,引擎会直接调用Batch里的信息,将相关顶点数据直接送到GPU,从而让渲染过程更加高效,即Batching技术是将所有材质相近的物体进行合并渲染。

Batches其实就是Unity内置的Draw Call Batching

GC(垃圾回收)

在提起这个问题时,我们首先要了解一下GC。

而想要了解什么是GC我们就要考虑到unity的内存管理机制。Unity主要采用自动内存管理的机制,开发者不需要详细地告诉unity如何进

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值