Unity性能优化总结

embedded/2025/1/8 1:55:50/

目录

前言

移动端常见性能优化指标​编辑

包体大小优化

FPS

CPU占用率

GPU占用率

内存

发热和耗电量

流量优化


前言

        终于有时间了,我将在最近两个项目中进行优化的一些经验进行归纳总结以飨读者。因为我习惯用思维导图,所以归纳的内容主要以图来表达希望对大家有用。当然如下内容肯定有疏忽或者遗漏的地方,请大家不吝赐教。

一些性能优化工具使用:

  https://unity.com/cn/features/profiling

  https://blog.csdn.net/Tokyo_2024/article/details/105388523

  https://blog.csdn.net/u013244147/article/details/104586401

移动端常见性能优化指标

1.包体大小优化

  用工具分析优化资源类型:纹理,音频,视频,网格数据,骨骼动画,配置文件

  【参考阅读】

  https://www.jianshu.com/p/6fba4f474289

  https://blog.csdn.net/m0_50811529/article/details/142587671

  https://wenku.csdn.net/column/747zeubh9z

2.FPS

FPS是一个综合指标。其低于30,或者不稳定则都是因为其他地方的问题导致的,如下:

【参考阅读】

https://blog.csdn.net/qq_41084756/article/details/130934118

https://blog.csdn.net/wjj616806129/article/details/104031551

https://developer.unity.cn/projects/60e2a5f9edbc2a04cfc5e341

3.CPU占用率

重点检测:

  • 执行耗时统计

  • GC大小统计

【参考阅读】

https://www.cnblogs.com/gozili/p/10281168.html

https://zhuanlan.zhihu.com/p/39998137

https://blog.csdn.net/qq_36303853/article/details/140882638

https://cloud.baidu.com/article/3407286

https://www.cnblogs.com/flamesky/p/18168065

https://wuzhiwei.net/unity-settings-optimization/

https://zhuanlan.zhihu.com/p/343074156

https://docs.unity.cn/cn/2019.2/Manual/OptimizingGraphicsPerformance.html

https://blog.csdn.net/qq_35864875/article/details/136539404

https://zhuanlan.zhihu.com/p/382656748

https://blog.uwa4d.com/archives/UWA_ReportModule6.html

https://www.cnblogs.com/uwatech/p/16405795.html

https://zhuanlan.zhihu.com/p/371159292

https://segmentfault.com/a/1190000043970787

https://www.cnblogs.com/flamesky/p/18146594

https://docs.unity.cn/cn/2019.4/Manual/Profiler.html

4.GPU占用率

重点检测:

  • drawcall耗时

  • shader的复杂度(包括纹理采样)

  • overdraw情况

【参考阅读】

https://www.nextmodel.cn/knowledges/video-tutorials/15658/

https://zhuanlan.zhihu.com/p/47056964

https://docs.unity.cn/cn/2021.2/Manual/OptimizingGraphicsPerformance.html

https://developer.unity.cn/projects/6409ebf8edbc2a6b5d462313

https://blog.csdn.net/qq_33060405/article/details/144315186

5.内存

需要考察:

  • 资源冗余;

  • 资源拷贝份数;

  • 内存泄漏;

【参考阅读】

https://unity.com/cn/how-to/use-memory-profiling-unity

https://developer.unity.cn/projects/60e2a5f9edbc2a04cfc5e341

https://zhuanlan.zhihu.com/p/6775481769

https://blog.csdn.net/f402455894/article/details/120309344

https://blog.csdn.net/weixin_53501436/article/details/132670960

https://segmentfault.com/a/1190000019844821

https://blog.csdn.net/weixin_42186870/article/details/136148421

https://blog.csdn.net/lejian/article/details/128989139

https://blog.csdn.net/ellis1970/article/details/143378783

https://www.cnblogs.com/weigangblog/p/18201401

https://www.cnblogs.com/jiaxinli/p/12333014.html

https://wetest.qq.com/labs/315

https://blog.csdn.net/qq_36303853/article/details/140882638

6.发热和耗电量

  Unity3D发热和耗电是一个系统工程,需要从帧率、CPU、GPU、内存等多方面考虑。

  • 降低帧率

  • 减少不必要的计算

  • 优化事件轮询机制

  • 减少渲染

  • 减少drawcall

  • 优化阴影计算

7.流量优化

  • 数据序列化(Protobuf等)以及压缩(Gzip等)

  • 降低字段精度(float使用float16,2D游戏只传输xy坐标)

  • 使用差分同步(只发送变化部分)

  • 减少网络数据传输频率(减少不必要的请求)

  • 选用合适的网络协议(TCP或者UDP)

【参考阅读】

https://blog.csdn.net/luoyikun/article/details/121687973

https://wenku.csdn.net/column/1cvtkw8dcv

https://wenku.csdn.net/column/6waef4v63n

https://www.cnblogs.com/zafu/p/18639883

https://zhuanlan.zhihu.com/p/41670260


http://www.ppmy.cn/embedded/151757.html

相关文章

Crosslink-NX应用连载(12):如何复用特殊功能管脚

作者:Hello,Panda 大家早上好。 昨天有朋友私信我,如何复用Crosslink-NX的特殊功能引脚如PROGRAMN、DONE、INITN诸如这些。熊猫君在这里简单介绍下: 以LIFCL-33U-8CTG104C为例,我们建立一个简单的指示灯LED周期闪烁的工程&…

PyTorch中的__init__.pyi文件:作用与C++实现关系解析

PyTorch中的__init__.pyi文件:作用与C实现关系解析 在PyTorch的源代码中,__init__.pyi文件是一个重要的部分,尤其是在Python与C代码的交互中。它主要用于为Python接口提供声明和类型提示,但并不包含具体的实现代码。本文将深入分…

WebGL 实践(一)开发环境搭建

WebGL 是一种基于 JavaScript 的 API,用于在浏览器中渲染 2D和3D 图形,很多场景都能用,例如游戏开发、数据可视化、在线教育和虚拟现实等应用领域。 零、基础知识 相关基础知识很重要,如果会html、JavaScript等技术掌握起来会更…

跨平台游戏引擎 Axmol-2.3.0 发布

2.3.0 版本是用于错误修复和改进的次要 LTS 版本 🙏感谢 Axmol 的所有贡献者,包括财务赞助商:thienphuoc、bingsoo、asnagni、paulocoutinhox、DelinWorks、DUONG、peterkharitonov 🙏非常感谢 peterkharitonov 成为新的 250.00…

决策树中的相关概念

目录 算法介绍 基本概念: 节点 信息熵(Information Entropy) 条件熵(Conditional Entropy) python中计算对数 分类标准 信息增益(ID3(Iterative Dichotomiser 3)算法的评估标…

Golang学习历程【第五篇 复合数据类型:数组切片】

Golang学习历程【第五篇 复合数据类型:数组&切片】 1. 数组(Array)1.1 数组的定义1.2 初始化数组1.3 数据的循环遍历1.4 多维数组 2. 切片(Slice)2.1 切片声明、初始化2.2 基于数组创建切片2.2 切片的长度(len)和容…

javafx fxml模式下 menu菜单增加图标

准备图标资源 首先,你需要有合适的图标文件。这些图标文件可以是.png、.jpg或者其他适合的图像格式。通常,将图标文件放在项目的resources文件夹下是一个比较好的做法,这样便于管理和访问。例如,你有一个名为icon.png的图标文件&a…

如何在没有 iCloud 的情况下将联系人从 iPhone 传输到 iPhone

概括 近期iOS 13.5的更新以及苹果公司发布的iPhone SE在众多iOS用户中引起了不小的轰动。此外,不少变化,如暴露通知 API、Face ID 增强功能以​​及其他在 COVID-19 期间与公共卫生相关的新功能,吸引了 iPhone 用户尝试新 iPhone 并更新到最…