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

2024-07-21 1025阅读

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


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

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

👨‍💻 本文由 秩沅 原创

👨‍💻 专栏交流🧧
🟥✨Unity100个实战基础✨🟥🎁
🟦✨ Unity100个精华一记✨🟦🎁
🟩✨ Unity50个demo案例教程✨🟩🎁
🟨✨ Unity100个精华细节BUG✨🟨🎁

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

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



文章目录

    • ⭐前言⭐
    • 🎶(==1==)基础知识
    • 🎶(==2==)使用操作——观察
      • 示例
      • ⭕CPU Usage CPU分析器
        • Hierarchy层级结构
        • Timeline时间线性图
        • ⭕GPU Usage GPU分析器
          • 辨别游戏的问题是CPU密集还是GPU密集

            ⭐前言⭐

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

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

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


              🎶(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资源加载与优化章】Profiler优化工具详解

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

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

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

                          示例

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

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

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

                            垂直同步(Vertical Sync)也被称为VSync,是一种在图形渲染中同步帧速率的技术。它工作原理是将显示器的刷新率与游戏或应用程序的帧速率进行同步,以避免画面撕裂(screen tearing)的现象。

                            在没有垂直同步的情况下,当显示器的刷新率高于游戏或应用程序的帧速率时,画面可能会出现撕裂的效果。这是因为显示器在渲染画面时,可能会在两个或多个帧之间切换,导致画面的不连贯。

                            通过启用垂直同步,游戏或应用程序的帧速率将被限制为与显示器刷新率相匹配。这样一来,每个新帧将在显示器开始下一次刷新之前被渲染完毕,从而产生更平滑、连贯的画面效果。

                            然而,垂直同步可能会导致一些问题。当帧速率无法达到显示器的刷新率时,可能会出现画面卡顿的情况。此外,对于竞技游戏等需要更高帧速率的应用场景,可能会关闭垂直同步以追求更低的延迟。

                            ⭕CPU Usage CPU分析器


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

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

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

                                • 打开层级我们可以看到

                                  各个部分对于CPU的内存占用率

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

                                  TotalSelfCallsGC AllocTime msSelf ms
                                  占用时间自身代码运行的时间调用次数GC内存此模块运行的时间自身代码占用的时间

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

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

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


                                  Timeline时间线性图

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

                                  可在其中查看线程情况

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


                                  ⭕GPU Usage GPU分析器


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

                                  一般情况下,GUP分析器是默认未激活状态的,需要手动开启(但是开启后会额外增加开销)

                                  如下图所示,点击勾选 GPU Usage的选项。开启GPU

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

                                  • 此时可以通过比对CPU 和 GPU 的数据 来判断 游戏是CPU密集还是GPU密集

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


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

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

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

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

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

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

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


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


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


VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]