【unity资源加载与优化章】Profiler优化工具详解

这篇具有很好参考价值的文章主要介绍了【unity资源加载与优化章】Profiler优化工具详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

unity profiler,# Unity性能优化,unity,游戏引擎


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏:Unity性能章

⭐🅰️⭐




⭐前言⭐

Profiler是Unity中的一种性能分析工具,用于帮助开发者识别和解决应用程序中的性能问题。它可以提供详细的统计信息,如帧率、CPU和GPU使用率、内存占用等。Profiler可以帮助开发者找出应用程序中的性能瓶颈,并提供一些优化建议,以提高应用程序的性能和响应能力。使用Profiler,开发者可以监视应用程序在不同时间段的性能表现,并进行性能比较,以了解哪部分代码或功能对性能有影响,从而进行优化和改进。

  • Profiler工具可以查看每一帧游戏的渲染,加载和内存,可精确到耗时资源本身——故此我们了解它的目的是为了跟踪导致性能问题产生的源头
    unity profiler,# Unity性能优化,unity,游戏引擎

🎶(1)基础知识


  • 什么是FPS

FPS(英文全称:frames per second)是指每秒帧数,也被称为帧率。在Unity中,FPS帧率是指游戏画面每秒被更新的次数。常见的FPS帧率是30、60或120。较高的FPS帧率可以提供更流畅的游戏画面,但也需要更强的硬件性能来支持。

从60到50FPS呈现出的是额外3.3毫秒的运行时间,但是从30到20FPS呈现出的是额外的16.6毫秒的运行时间。故此帧率越高运行速度越快

  • 什么是ms

在Unity中,"ms"是指毫秒(milliseconds)。它是一种时间单位,用于测量一段代码的执行时间或者游戏中的帧率。在游戏开发中,通常会使用ms来衡量游戏的性能和优化。 例如,帧时间表示每帧所需的毫秒数,较低的帧时间意味着游戏运行更流畅。

  • 什么是帧时间

在Unity中,帧时间(Frame Time)是指每一帧的渲染时间,即游戏引擎需要花费多少时间来完成一帧的渲染工作。帧时间通常用毫秒(ms)来表示。
帧时间与游戏的帧率(FPS)有密切的关联。帧率是指每秒渲染的帧数,而帧时间则表示完成一帧渲染所花费的时间。 两者之间有一个简单的关系:帧时间 = 1000 / 帧率。例如,如果游戏的帧率是60FPS,则帧时间应该是16.67ms。
较低的帧时间意味着游戏的性能更好,因为引擎可以更快地渲染每一帧。常见的目标是保持帧时间在16.67ms以下,以确保游戏的流畅性。如果帧时间超过这个值,可能会出现卡顿、掉帧等性能问题,需要进行优化和调整。
🅰️


🎶(2)使用操作——观察


使用Profiler窗口是为了观察游戏的性能问题,而这篇文章的目的是为了帮助大家了解Profiler窗口

  • 在开发过程中,我们可以通过编辑模式的状态下按住ctrl+7 打开Profiler性能分析窗口但是,此时的分析结果会有误差
    要获得更好的性能分析结果,应该始终在目标设备上对应用程序进行性能分析(打包测试)操作如下:

unity profiler,# Unity性能优化,unity,游戏引擎


图片来源于官方文档:入口


unity profiler,# Unity性能优化,unity,游戏引擎

  • Building setting -> 勾选Development - Autoconnect Profiler - Deep Profiling Support

unity profiler,# Unity性能优化,unity,游戏引擎

  • 移动设备性能测试请见:入口

示例

示例如下:(随意打包出一个杂乱未进行优化的项目)

unity profiler,# Unity性能优化,unity,游戏引擎

  • 以上黄色的是 VSync(垂直同步)区域,一般在CPU视图中选择隐藏,在Hierarchy视图中选择忽视对应的层级为

垂直同步(Vertical Sync)也被称为VSync,是一种在图形渲染中同步帧速率的技术。它工作原理是将显示器的刷新率与游戏或应用程序的帧速率进行同步,以避免画面撕裂(screen tearing)的现象。
在没有垂直同步的情况下,当显示器的刷新率高于游戏或应用程序的帧速率时,画面可能会出现撕裂的效果。这是因为显示器在渲染画面时,可能会在两个或多个帧之间切换,导致画面的不连贯。
通过启用垂直同步,游戏或应用程序的帧速率将被限制为与显示器刷新率相匹配。这样一来,每个新帧将在显示器开始下一次刷新之前被渲染完毕,从而产生更平滑、连贯的画面效果。
然而,垂直同步可能会导致一些问题。当帧速率无法达到显示器的刷新率时,可能会出现画面卡顿的情况。此外,对于竞技游戏等需要更高帧速率的应用场景,可能会关闭垂直同步以追求更低的延迟

⭕CPU Usage CPU分析器


  • CPU完成每帧所花费的时间

unity profiler,# Unity性能优化,unity,游戏引擎

  • 据上图分析,此时帧时间已超过流畅性值(16.67ms)
  • 帧率FPS也在15,这说明画面极其卡顿

Hierarchy层级结构

  • 打开层级我们可以看到
    各个部分对于CPU的内存占用率
    unity profiler,# Unity性能优化,unity,游戏引擎
Total Self Calls GC Alloc Time ms Self ms
占用时间 自身代码运行的时间 调用次数 GC内存 此模块运行的时间 自身代码占用的时间

注: GC分配的内存Struct和Class一次性分配的内存别超过2KB

GC的内存分配:一次性不得超过2KB,每帧都具有20B以上的内存分配

unity profiler,# Unity性能优化,unity,游戏引擎


Timeline时间线性图

CPU 任务执行的顺序和对应线程负责任务

可在其中查看线程情况
unity profiler,# Unity性能优化,unity,游戏引擎


⭕GPU Usage GPU分析器


辨别游戏的问题是CPU密集还是GPU密集

一般情况下,GUP分析器是默认未激活状态的,需要手动开启(但是开启后会额外增加开销)
如下图所示,点击勾选 GPU Usage的选项。开启GPU

unity profiler,# Unity性能优化,unity,游戏引擎

  • 此时可以通过比对CPU 和 GPU 的数据 来判断 游戏是CPU密集还是GPU密集
    unity profiler,# Unity性能优化,unity,游戏引擎

⭐【Unityc#专题篇】之c#进阶篇】

⭐【Unityc#专题篇】之c#核心篇】

⭐【Unityc#专题篇】之c#基础篇】

⭐【Unity-c#专题篇】之c#入门篇】

【Unityc#专题篇】—进阶章题单实践练习

⭐【Unityc#专题篇】—基础章题单实践练习

【Unityc#专题篇】—核心章题单实践练习


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!


unity profiler,# Unity性能优化,unity,游戏引擎文章来源地址https://www.toymoban.com/news/detail-860514.html


到了这里,关于【unity资源加载与优化章】Profiler优化工具详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一次不成功的unity profiler链接

    常见的方法是使用adb forward对电脑的端口跟手机进行转发 adb forward --list adb forward tcp:34998 localabstract:Unity-com.xxx.xxx 也试过34999端口号,都没有啥作用 使用unity build run发现控制台会打印一个信息 adb.exe -s “MDX0220328005102” reverse “tcp:34998” “tcp:34999” “MDX0220328005102”是对应自己

    2024年02月05日
    浏览(37)
  • Unity 内存性能分析器 (Memory Profiler)

    安装有两种 方式一: add package : com.unity.memoryprofiler 方式二: From Packages : Unity Registry 搜索 Memory Profiler 打开:Windows - Analysis - Memory Profiler 打开MemoryProfiler界面,可以链接真机检测,也可以在Editor检测。 点击Capture 保存当下帧的内容。 Capture 完毕之后,会保存本地一个镜像 :

    2024年02月03日
    浏览(53)
  • unity 使用模拟器进行Profiler性能调试

    这篇文章主要记录如何实现通过模拟器对打包的app游戏进行Profiler调试。主要记录一些比较重要的点。 首先你要能够打包unity的安卓包,如果没有安装安卓组件,请先安装组件。 安装完成以后,会在unity的安装目录找到相应的SDK 这个platform-tools后面会用到,而这些组件设置了

    2024年02月07日
    浏览(41)
  • Unity Profiler或UPR连接WebGL应用出错

    在使用Unity Build出WebGL应用进行性能测试的时候,勾选上了 Development Build和Autoconnect Profiler,分别使用Profiler和UPR进行测试   使用Profiler测试时,就收到几帧,然后就没了 使用UPR进行测试时,在网页上解析出一百帧,此时测试正常,但是好景不长   ,后续Server Speed的曲线就为

    2024年02月15日
    浏览(73)
  • Unity 性能优化四:UI耗时函数、资源加载、卸载API

    1.1 Canvas.SendWillRenderCanvases 这个函数是由于自身UI的更新,产生的耗时 1. 这里更新的是vertex 属性,比如 color、tangent、position、uv,修改recttransform的position、scale,rotation并不会导致顶点属性改变,因为顶点的position是根据pivot的偏移决定的,而改变其size、pivot、anchor,则会修改

    2024年02月14日
    浏览(32)
  • 【unity每日一记】资源和场景加载图文详解

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【unity本站最全系列】unity常用API大全

    2024年02月10日
    浏览(36)
  • pytorch性能分析工具Profiler

    https://zhuanlan.zhihu.com/p/360479566 PyTorch Profiler 是一个开源工具,可以对大规模深度学习模型进行准确高效的 性能分析 。包括如下等功能: 分析model的GPU、CPU的使用率 各种算子op的时间消耗 trace网络在pipeline的CPU和GPU的使用情况 Profiler 利用 Tensorboard 可视化 模型的性能 ,帮助发现

    2023年04月12日
    浏览(38)
  • Android开发之性能测试工具Profiler

    性能优化问题,在我们开发时都会遇到,但是在小厂和对自己要求不严格的情况下,我都很少去做性能优化; 在性能优化上,基本大家都是通过自己的开发经验和性能分析工具来发现问题,今天给大家分享一下小编最近使用的Profiler工具 帮助开发者了解应用的CPU,内存,网络

    2024年02月11日
    浏览(32)
  • 4个python内存性能检测工具:memory_profiler、timeit、line_profiler、heartrate的使用案例

    这里总结了4个比较好的python性能检测工具,包括内存使用、运行时间、执行次数等方面。 1、memory_profiler查看内存的使用情况 memory_profiler可以用来测量python进程的内存使用情况。可以按行查看内存的使用情况。 memory_profiler 是一个监控进程内存消耗的模块,可以逐行分析 Py

    2024年02月01日
    浏览(31)
  • 简单使用AndroidStudio 官方Profiler工具进行内存泄漏检查

    Android studio(下面简称AS)为App提供的性能分析工具,在AS3.0+替换掉旧的分析工具,对于其使用方法,官方也有对应的介绍:Android Profiler 对于使用方法,我只用到比较简单的功能,高级的还没用到,使用案例进行简答的使用,在此之前,你可能需要到官方文档中了解Profiler中

    2023年04月08日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包