搜索 Unity

Unity, branded image with no logo
Unity, branded image with no logo
分享

Is this article helpful for you?

Thank you for your feedback!

1.0.0版本的Memory Profiler进一步完善了性能分析工具,可描绘更全面的内存使用情况,使得性能优化与内存问题检测更为方便快捷。

我们很高兴地宣布,至2022年9月,Memory Profiler包已经从试验(Experimental)阶段进入已验证(Verified)阶段,且在Unity 2022.2 Tech Stream版本向所有人开放。

内存分析器(Memory Profiler):概览

要避免应用在容量有限的设备上出现内存溢出崩溃的问题,那么内存优化将是非常关键的一步。此外,如果项目需要发布至多个平台,开发者则需要调整内存占用,以最大化利用每个平台。

Memory Profiler让面临这些挑战的用户能够截取并审查游戏在特定时间点的内存占用。

借助这些“快照”,你可以找出游戏中最占内存的部分或崩溃的原因。

:Memory Profiler的完整功能和内存跟踪仅支持2022.2及以上版本,但你也可以在2022及以上的空项目里打开窗口、导入旧版快照,再用新界面进行分析。

工具的发展历程

Memory Profiler最初是作为试验包在几年前发布的,新版本大幅修改了UI和用户体验(UX),使工具的使用更为快捷方便。

有多位早期用户在试验版的帮助下找到了许多的内存问题。然而第一代工具流程松散、运行缓慢,需要有专业知识才能使用。

因此,在开发新版本时,我们设立了以下几个目标:

  • 简化最常见、最重要的使用流程,让问题的识别和修复更快
  • 提供更全面和可靠的信息,使多种设备(使用平台专用的分析器)的内存占用对比更简单
  • 用更易理解的方式呈现信息,让缺乏专业知识的用户同样能有效地优化应用

为实现目标,我们与早期用户紧密合作来了解他们的需求和痛点,推出数代设计直至达成最佳的用户体验。

得益于这些用户的反馈,我们团队极大地精简了工具,移除了不少术语,使对象、细节信息和依赖项的检查更为轻松。

工具内容

Memory Profiler由三部分组成,每部分都用上了改进后的新UI:

  • 快照列表(Snapshot list)
  • 主窗口,被分为三种工作视图:摘要(Summary)、Unity对象(Unity Objects)和总内存(All of Memory)
  • 所选对象细节

快照列表

快照列表保存了你在游戏中截取的快照,以及内存使用、截图日期等信息。你可以使用工具栏的“Capture”,或者主窗口上的快照按钮,来截取快照。

对比多张快照可检查内存占用是否有变化,并了解项目性能是否有提升。

最后,你也能在快照列表里查看单张快照或对比数张快照(下文将将详细介绍)。

Snapshot list
快照列表

主窗口

这是Memory Profiler的核心区域,它被分为三个视图:摘要(Summary)、Unity对象(Unity Objects)和总内存(All of Memory)每个视图都可在主窗口顶部打开。

摘要(Summary)视图是加载或截取快照时的默认视图。它提供了当前内存占用、设备“常驻”内存以及提交但未使用的内存等信息。内存会被分成多个类型,以方便用户开始调查。

最后,摘要(Summary)视图是开展详细分析,如“占内存最大的Unity对象”或“托管内存拆分”等的入口。

Main section – Summary view
主窗口——摘要(Summary)视图

Unity对象(Unity Objects)视图应该是最常用的视图。它列出了所有加载到内存的对象,如纹理、着色器、字体等。你通常可以在此处找出哪些对象过大,哪些是错误加载的,或者哪些一直被引用、保留在内存里的。

Main section – Unity Objects view
主窗口——Unity对象(Unity Objects)视图

总内存(All of Memory)视图支持查看分过类的所有内存——包括本机内存(Native)、托管内存(Managed)、图形内存(Graphics)和可执行文件内存(Executables)。你可以在此查看Memory Priofiler捕捉的数据,调查应用的特定方面,了解项目内存由哪些东西组成。

Main section – All of Memory view
主窗口——总内存(All of Memory)视图

所选对象细节(Selection details)视图

所选对象细节(Selection details)提供了主屏幕被选中对象的详细信息,包括内存类别的描述、对象的潜在引用或详情。

更多的信息可帮你了解查看的对象,以及它为何出现在内存中。并且,如果编辑器打开了一个项目,你可以“ping”出对象,直接在场景或项目窗口检查资产。

 Selection details view
所选对象细节(Selection details)视图

对比快照

以上所有视图都能用于检查单张快照或对比多张快照。

如果要对比一张快照,请选择列表中的“Compare”,再选取第二张快照。打开对比栏时所有视图都会自动转换成对比模式

对比模式下,摘要(Summary)视图将并排显示两张截图的内存分析,方便对比两者内存占用的主要不同(对比双方会被称为“A”和“B”)。

Compare mode view
对比模式快照

Unity对象(Unity Objects)和总内存(All of Memory)视图带有一种新的专用UI,让你能查看各类内存的大小变化或对象的数量变化。

在上方选取一个类别,你就能在下方图表中查看A与B单个类别上的不同。

Unity Objects and All of Memory views using Compare mode
对比模式下的Unity对象(Unity Objects)视图和总内存(All of Memory)视图

如果想重新检查单张快照,你可以选择列表的“Single”。第二张对比照仍会保留,方便你快速在两个视图间切换。

了解Unity内存及其优化方法

在接下来几个月,我们计划提供更多资源与信息,帮助你学习高效的内存优化。未来将有更多博文介绍如何识别常见的内存问题,以及Unity内存的工作方式,敬请持续关注。

有关更多的性能优化方面的资源,以下是我们的推荐:

下一步

Memory Profiler的重做参考了许多早期用户的意见。新版本在可靠性和可用性上有了巨大的提升,但我们的工作还远未结束。

我们还在努力思索如何降低工具的碎片化程度,在未来让流程更为一体化。同时,我们还在积极收集可用性与UX问题的反馈。

欢迎在路线图上与我们分享你的反馈或意见,也可以在此为新功能投票,或请求添加新功能。你还可以在论坛上提问。

我们会时刻关注这两个信息渠道,并与大家一起努力改进Unity的性能与工具。

安装并详细了解Memory Profiler 1.0.0软件包。

此内容由第三方提供商托管,该第三方提供商不允许在未接受“Targeting Cookies”的情况下观看视频。如果想观看来自这些提供商的视频,请将“Targeting Cookies”的 Cookie 首选项设置为“是”。

2023年1月30日 类别 Engine & platform | 10 分 阅读

Is this article helpful for you?

Thank you for your feedback!

相关文章