Unity项目性能优化列表

1、对象池

2、检查内存是否泄露。内存持续上升(闭包、委托造成泄露)

3、检查DrawCall数量,尽量减少SetPassCall

4、尽量多的利用四种合批

  1. 动态合批(Dynamic Batching)
  2. 静态合批(Static Batching)
  3. GPUInstancing
  4. SRP Batcher

动态合批消耗内存把多个网格组合在一起合并提交渲染, 既然是网格合并,那对合并的物体有很多要求

静态合批就是提前把物体的网格缓存一份。

GPUInstancing是利用GPU控制顶点动画,略过了CPU额外处理那一步

SRP Batcher的原理是缓存渲染数据和渲染状态,只有这俩发生变化时才会提交Drawcall,因此也是浪费内存换效率的做法。

5、3D游戏 LOD技术

LOD原理就是把远处的物体换个低模,顶点和面数少了,渲染压力自然就下来了。

6、资源压缩节约内存

7、伤害跳字数量多优化

 一般的几个跳字可以不管,但如果UI非常多,并在在字体发生各种动画时可能会造成DrawCall多浪费的情况,因此可以利用顶点合并,或者GPU控制顶点等骚操作优化伤害跳字。

8、加载卡顿时考虑分帧加载或预加载

加载大量对象卡顿时,可以考虑分帧加载,或者预加载,这个要酌情考虑。

9、检查Overdraw

检查一个位置是否overdraw,打开工具看到颜色发红的地方就说明这个地方的颜色被多次渲染了,大概率是由于透明物体导致的。 

10、UGUI优化

1、使用图集,同一图集的UI一次渲染只占一个DrawCall

2、动静分离,频道改动的可以单独一个Canvas。

3、图集之间不要有TextMeshPro穿插,TMP虽然是文字,它的底层是用图实现的,只要穿插就会有额外的DrawCall出现,导致同一个图集的UI也无法放同一次DrawCall渲染。

UGUI的图片批处理也遵循动态合批规则,比如缩放了不能合批。

11、Profiler托管堆峰值检查

Unity 托管堆内存优化之内存溢出 Out of Memory 导致的崩溃_unity out of memory-CSDN博客文章浏览阅读2.7k次,点赞3次,收藏15次。内存优化之内存溢出 Out of Memory 导致的崩溃为什么会导致内存溢出?Unity内存管理系统堆栈内存和堆内存什么是托管堆?申请内存的原理造成内存溢出的原因解决内存溢出的方案为什么会导致内存溢出?导致内存溢出的原因很简单,就是因为我们在大量的使用内存,而由于系统(OS)各种限制原因,我们可以申请使用的内存已达上限,没有多余的内存空间进行申请使用,但是我们仍在无节制的使用内存,最后就导致我们使用的内存已经超过了可使用的内存上限。从而就造成了 Out of Memory 内存溢出,甚至产生崩溃。这_unity out of memoryhttps://blog.csdn.net/qq_42461824/article/details/116778960 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/61351.shtml

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

相关文章

论文笔记 SliceGPT: Compress Large Language Models By Deleting Rows And Columns

欲买桂花同载酒,终不似,少年游。 数学知识 秩: 矩阵中最大线性无关的行/列向量数。行秩与列秩相等。 线性无关:对于N个向量而言,如果任取一个向量 v \textbf{v} v,不能被剩下的N-1个向量通过线性组合的方式…

pnpm安装electron出现postinstall$ node install.js报错

pnpm install --registryhttp://registry.npm.taobao.org安装依赖包的时候出现了postinstall$ node install.js报错 找到install.js 找到downloadArtifact方法,添加如下代码 mirrorOptions:{mirror:"http://npmmirror.com/mirrors/electron/"}http://n…

MySQL之单行函数

目录 1. 函数的理解 单行函数 2. 数值函数 2.1 基本函数 2.2 角度与弧度互换函数 2.3 三角函数 2.4 指数与对数 2.5 进制间的转换 3. 字符串函数 4. 日期和时间函数 4.1 获取日期、时间 4.2 日期与时间戳的转换​编辑 4.3 获取月份、星期、星期数、天数等函数 4.4 …

文档加密怎么做才安全?

公司的文档包含很多机密文件,这些文件不仅关乎公司的核心竞争力,还涉及到客户隐私、商业策略等敏感信息。因此,文档的保管和传递一直是我们工作的重中之重。 为了确保机密文件的安全,公司需要制定了一系列严格的保密措施。从文件的…

golang debug调试

1. 本地调试 1:Add Configurations 添加配置文件(Run kind :Directory) 2:进入run运行窗口 3:debug断点调试模式 1. Resume Program (继续运行) 图标: ▶️ 或 ► 快捷键: F9(Windows/Linux&a…

计算机毕业设计Hadoop+Spark音乐推荐系统 音乐预测系统 音乐可视化大屏 音乐爬虫 HDFS hive数据仓库 机器学习 深度学习 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

基础入门-Web应用架构搭建域名源码站库分离MVC模型解析受限对应路径

知识点: 1、基础入门-Web应用-域名上的技术要点 2、基础入门-Web应用-源码上的技术要点 3、基础入门-Web应用-数据上的技术要点 4、基础入门-Web应用-解析上的技术要点 5、基础入门-Web应用-平台上的技术要点 一、演示案例-域名差异-主站&分站&端口站&…

leetcode:LCR 139. 训练计划 I(python3解法)

难度:简单 教练使用整数数组 actions 记录一系列核心肌群训练项目编号。为增强训练趣味性,需要将所有奇数编号训练项目调整至偶数编号训练项目之前。请将调整后的训练项目编号以 数组 形式返回。 示例 1: 输入:actions [1,2,3,4,…

selinux、firewalld

一、selinux 1、selinux(是Security-Enhanced Linux)------ 安全强化的linux 2、selinux的工作原理 2.1 工作原理 ------- SELinux是通过MAC的方式来控制管理进程,它控制的主体是进程,而目标则是该进程能否读取的文件资源。 主…

wordpress网站首页底部栏显示网站备案信息

一、页脚文件footer.php 例如,wordpress主题使用的是simple-life主题,服务器IP为192.168.68.89,在wordpress主题文件中有个页脚文件footer.php,这是一个包含网站页脚代码的文件。 footer.php 路径如下: /www/wwwroot/192.168.68…

AI需求条目化全面升级!支持多格式需求,打破模板限制!

AI需求条目化全面升级!支持多格式需求,打破模板限制! 一、多格兼济 标准立成 1、功能揭秘 预览未来 平台需求板块的AI需求条目化功能迎来全面升级。它支持多种需求格式,不再受限于模板文件,能够一键自动快速且灵活地生…

【c++篇】:解读Set和Map的封装原理--编程中的数据结构优化秘籍

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:c篇–CSDN博客 文章目录 前言一.set和map的初步封装1.树的节点封装修改2.Find()查找函数3.红…

机器学习实战:泰坦尼克号乘客生存率预测(数据处理+特征工程+建模预测)

项目描述 任务:根据训练集数据中的数据预测泰坦尼克号上哪些乘客能生存下来 数据源:csv文件(train.csv) 目标变量:Survived(0-1变量) 数据集预览: 1、英文描述: 2、…

Linux自动化部署方法(Linux Automated Deployment Method)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…

嵌入式 FPGA开发

目录 一、引言 二、当前嵌入式 FPGA 开发的现状 三、嵌入式 FPGA 开发的优势 四、嵌入式 FPGA 的应用领域 1. 通信系统 2. 数字信号处理 3. 视频图像处理 4. 高速接口设计 5. 人工智能 6. IC 设计与 PCB 设计类比 五、嵌入式 FPGA 未来发展趋势 六、结论 一、引言 …

工业AI质检 AI质检智能系统 尤劲恩(上海)信息科技有限公司

来的现代化工厂,将逐步被无人化车间取代,无人工厂除了产线自动化,其无人质检将是绕不开的话题。尤劲恩致力于帮助工业制造领域上下游工厂减员增效、提高品质效率,真正实现无人质检IQC/IPQC/OQC的在线质检系统。分析生产环节真实品…

Angular v19 (三):增量水合特性详解 - 什么是水合过程?有哪些应用场景?与 Qwik 相比谁更胜一筹?- 哪个技术好我就学哪个,这就是吸心大法吧

Angular在其最新版本 v19 中引入了增量水合(Incremental Hydration)这一特性。这一更新引发了开发者们广泛的讨论,特别是在优化首屏加载速度和改善用户体验方面。本文将详解水合过程的概念、增量水合的应用场景,以及它与类似框架如…

[STM32]从零开始的STM32 FreeRTOS移植教程

一、前言 如果能看到这个教程的话,说明大家已经学习嵌入式有一段时间了。还记得嵌入式在大多数时候指的是什么吗?是的,我们所说的学习嵌入式大部分时候都是在学习嵌入式操作系统。从简单的一些任务状态机再到复杂一些的RTOS,再到最…

Vivado程序固化到Flash

在上板调试FPGA时,通常使用JTAG接口下载程序到FPGA芯片中,FPGA本身是基于RAM工艺的器件,因此掉电后会丢失芯片内的程序,需要重新烧写程序。但是当程序需要投入使用时不能每一次都使用JTAG接口下载程序,一般FPGA的外围会…

医疗废物检测

3809总图像数 数据集分割 训练组80% 3030图片 有效集20% 779图片 测试集% 0图片 标签 预处理 自动定向: 已应用 调整大小: 拉伸至 640x640 增强 未应用任何增强。 注射器 手术刀 输液管 医用手套 医用口罩 血渍 数据集…