Unity性能优化总结

目录

前言

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

包体大小优化

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.mzph.cn/diannao/66262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FTP上传下传、SFTP上传下传、进度监控、断点续传、连接池封装JAVA一网打尽(二)FTP高级篇【2/5】

一、摘要(本系列汇总说明) - 总纲 FTP、SFTP上传下传、进度监控、断点续传、连接池封装JAVA一网打尽(一)FTP、SFTP上传下传、进度监控、断点续传、连接池封装JAVA一网打尽(二)FTP、SFTP上传下传、进度监控…

北京航空航天大学惊现技术商业“宫斗剧”!背后隐藏的内幕遭曝光!

北京航空航天大学(以下称北航)与源亿(北京)网络科技有限公司(以下称源亿)的派驻的员工恶意串通,指定北京蚂蚁非标科技有限公司(以下称蚂蚁公司)挖走源亿公司在现场派驻的…

transfomer深度学习实战水果识别

本文采用RT-DETR作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。RT-DETR以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对水果数据集进行训练和优化,该数据集包含丰富的水果图像样本&#…

Python世界:人生苦短,我用Python

Python世界:人生苦短,我用Python 前言Python优势Python缺点 前言 几句话说清,我们为啥要用Python? Python设计之初心,是为了解决编程门槛,让大家更聚焦业务实现,而非编程细节。当前人工智能火…

TensorFlow深度学习实战(3)——深度学习中常用激活函数详解

TensorFlow深度学习实战(3)——深度学习中常用激活函数详解 0. 前言1. 引入激活函数1.1 感知器1.2 多层感知器1.3 训练感知器存在的问题 2. 激活函数3. 常见激活函数3.1 sigmoid3.2 tanh3.3 ReLU3.4 ELU和Leaky ReLU 小结系列链接 0. 前言 使用激活函数…

Linux vi/vim 编辑器:功能强大的文本处理工具

Linux vi/vim 编辑器:功能强大的文本处理工具 引言 Linux 系统中的 vi/vim 是一种功能强大的文本编辑器,它广泛应用于程序员、系统管理员和其他需要处理文本文件的用户群体中。vi 是 visual interface 的缩写,而 vim 则是 vi improved 的缩…

C#设计模式(行为型模式):状态模式

C#设计模式:状态模式 在软件开发中,我们经常会遇到对象的行为取决于其状态的情况。例如,一个订单对象可能处于“待支付”、“已支付”、“已发货”等不同状态,而每个状态下订单的行为(例如是否可以支付、是否可以发货…

数据结构C语言描述9(图文结合)--二叉树和特殊书的概念,二叉树“最傻瓜式创建”与前中后序的“递归”与“非递归遍历”

前言 这个专栏将会用纯C实现常用的数据结构和简单的算法;有C基础即可跟着学习,代码均可运行;准备考研的也可跟着写,个人感觉,如果时间充裕,手写一遍比看书、刷题管用很多,这也是本人采用纯C语言…

Leetcode打卡:设计一个ATM机器

执行结果:通过 题目 2241 设计一个ATM机器 一个 ATM 机器,存有 5 种面值的钞票:20 ,50 ,100 ,200 和 500 美元。初始时,ATM 机是空的。用户可以用它存或者取任意数目的钱。 取款时&#xff0c…

0. 总框架

第1阶段,c语言层面 (1) c语言基本语法:结构体、指针、宏 (2) 数据结构和算法:hash,rbtree,b/btree,linked list(链表) 1.2.1-1部分数据结构的说明-CSDN博客 1.2.1-2部分数据结构的说明02_链表-CSDN博客…

比Qt更适合小公司的C++界面开发框架wxWidgets

C++行业里,如果一家小公司对某些费用方面问题特别敏感,而且你做的产品属于消费品领域,那么你最好还是选择wxWidgets来替代Qt。 Qt的好处是保罗大部分常用的开发库,它不用你会C++ STL,因为它本身就很成熟,你无需使用STL库去补充功能,所以我经常看到很多小公司的招聘信息…

源码理解 UE4中的 FCookStatsManager::FAutoRegisterCallback RegisterCookStats

官方文档:https://dev.epicgames.com/documentation/zh-cn/unreal-engine/API/Runtime/Core/ProfilingDebugging/FCookStatsManager文档中的注释: When a cook a complete that is configured to use stats (ENABLE_COOK_STATS), it will broadcast this…

vscode如何离线安装插件

在没有网络的时候,如果要安装插件,就会麻烦一些,需要通过离线安装的方式进行。下面记录如何在vscode离线安装插件。 一、下载离线插件 在一台能联网的电脑中,下载好离线插件,拷贝到无法联网的电脑上。等待安装。 vscode插件商店地址:https://marketplace.visualstudio.co…

趋炎附势的合理性

趋炎附势常被视为负面行为,例如某个人当上了大官,之前不没有联系的人都开始联系了,为的是以后有需要帮忙的事可以找他。这样趋炎附势的行为往往令人不齿,但是仍然有一定的合理性,主要在社会资源优化配置、优质个体的选…

Android:文件管理:打开文件意图

三步走&#xff1a; 一、先在AndroidManifest.xml声明provider&#xff1a; <providerandroid:name"androidx.core.content.FileProvider"android:authorities"${applicationId}.FileProvider"android:exported"false"android:grantUriPermi…

用Tkinter制作一个用于合并PDF文件的小程序

需要安装PyPDF2库&#xff0c;具体原代码如下&#xff1a; # -*- coding: utf-8 -*- """ Created on Sun Dec 29 14:44:20 2024author: YBK """import PyPDF2 import os import tkinter as tk import windndpdf_files [] def dragged_files(f…

spring mvc源码学习笔记之四

pom.xml 内容如下 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

CDP集成Hudi实战-Hive

[〇]关于本文 本文测试一下使用Hive和Hudi的集成 软件版本Hudi1.0.0Hadoop Version3.1.1.7.3.1.0-197Hive Version3.1.3000.7.3.1.0-197Spark Version3.4.1.7.3.1.0-197CDP7.3.1 [一]部署Jar包 1-部署hudi-hive-sync-bundle-1.0.0.jar文件 [rootcdp73-1 ~]# for i in $(se…

公司资产网站

本文结尾处获取源码。 本文结尾处获取源码。 本文结尾处获取源码。 一、相关技术 后端&#xff1a;Java、JavaWeb / Springboot。前端&#xff1a;Vue、HTML / CSS / Javascript 等。数据库&#xff1a;MySQL 二、相关软件&#xff08;列出的软件其一均可运行&#xff09; I…

Java中如何实现线程安全的单例模式?

目录 1、懒汉式&#xff08;线程安全&#xff09; 2、饿汉式&#xff08;线程安全&#xff09; 3、双重校验锁&#xff08;线程安全&#xff09; 4、静态内部类&#xff08;推荐&#xff09; 5、枚举&#xff08;最佳方法&#xff09; 6、总结 在Java中&#xff0c;实现线…