Unity3D中如何面对优化不再束手无策---Profiler性能分析

2023-10-31 03:50

本文主要是介绍Unity3D中如何面对优化不再束手无策---Profiler性能分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一说到优化,相信很多人都会头大,心想这个难搞,无从下手,束手无策。但是优化是游戏开发必不可少的。也是必须要走的一条路,或许叫一道坎也不为过。为什么呢?游戏玩的就是体验。如果你的游戏给人的体验极差,那么你觉得还有人会玩你的游戏吗?游戏体验不仅仅是游戏的玩法,同时还有其他的因素。比如性能啊等等。所以你会发现,游戏公司会优化的人是很吃香的。但是由于它还是有一定的难度。所以会的人也是比较少的。很多人都知道优化很重要,但是却不知道从何下手。因为他自己都不知道哪里需要优化。绝大部分是这样的。其实优化没有那么难,不信的话,咱们继续看。

今天给大家带来的是性能优化的”葵花宝典”,哈哈。我们在unity中怎么看自己的项目的性能情况呢?相信很多人都会说,我们看state面板属性进行分析啊!这个地方确实是可以看出一点东西的。但是它只能看个大概,能解决部分问题。也就是治标不治本。那么我们该怎么才能找到我们性能的严重耗损点呢。这个时候我们就需要看Profiler了。它是什么?它是性能分析器(姑且这么叫它),它可以比state更加清晰的看清楚你的项目哪些地方性能消耗严重。怎么打开呢?Window->Profiler,就可以看到了。它主要包含CPU,GPU,Render,内存,声音,视频,网络,物理系统等模块的性能消耗情况。如图:

比如这里我们运行一个项目,然后可以看看它的性能情况,如下图:

 

我们可以很清楚的看到我们CPU ,GPU的消耗情况。在这里我们来说下最下面的一些函数吧。这些函数就是Unity列举出来的性能消耗的主要函数。从这里你就能看到你的项目到底是哪里出现了问题了,然后就逐个问题逐个解决。这样就能达到优化的目的了。让你不再是无头苍蝇一样。不知所措。

比如我这个项目,在mono这个模块中,消耗占比都有写出,哪些函数消耗多少性能,一帧调用多少次等等。还有一个值得注意的点。最上面占比最大的是WaitfortargetFPS,这个玩意儿是什么呢?我们都知道一个游戏比较好的FPS是60左右。那么有时候我们的FPS可能会高,可能会底,那么我们FPS太高的话,虽然好,但是会浪费性能,太低的话,游戏体验不好,所以我们要尽量的保持到60左右是最好的。那么怎么做的?如果是高于60帧的,我们就会有多余的时间,那么多余的时间,我们的CPU就可以做其他的事情了。如果没有其他事情做,它就会休眠一段时间来等待下一帧的到来,那么休眠等待的这个,就是waitfortargetFPS.如果低于60 的话,它会怎么办?那肯定是疯狂做它该做的事情啊。事情的做不完,还想休息?不存在的!

至于其他的几个模块,我就不一一的带着大家来说了,感兴趣的自己研究下。这一块还是很有含金量的。好了,本次的分享到此为止。不喜勿喷哦!

点击链接关注灿烂的星海游戏开发并加入群聊【cocos/unity游戏开发交流】来获得更多的学习资料。
————————————————
版权声明:本文为CSDN博主「Clank的游戏栈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/voidinit/article/details/107480539

这篇关于Unity3D中如何面对优化不再束手无策---Profiler性能分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/312632

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模