资源检测的正确打开方式

简介:

Shader资源具体使用情况

UWA Tech Doc

如上图,我们可以看到项目运行过程中Shader资源的“资源名称”、“生存周期”、“内存占用”、“数量峰值” 和 “硬件支持”等信息。研发团队可以通过对以上每一个属性对资源进行排序,从不同维度上查看存在问题的资源,并通过其“资源名称”在项目中直接进行完善和改进。同时,我们建议开发者通过以下几个方面来找“问题”资源:

内存占用

Shader资源的内存占用普遍较低,所以,Shader资源的内存占用一般并不是该类资源在使用时的主要问题。

生存周期

生存周期是具体资源情况中非常重要的一项指标。这里的 “生存周期”,是指该资源在项目检测过程中驻留的场景数。该指标主要可以帮助您查看项目中是否存在 “资源泄露” 等严重问题。所谓 “资源泄露”,是指某一资源在切换场景时没有被及时卸载,而被带进了下一场景,从而造成内存占用不断升高,即内存泄露。 一般来说,不同种类的场景(战斗副本场景和主城市场景),其所加载的资源一般是不一致的,所以副本中的大部分资源在切换回主城市场景时均会被卸载。因此,通过 “生存周期” 指标,您将快速查看到哪些资源长期驻留在内存中,并可以快速排查该资源是确实常驻内存的 预加载资源,还是存在问题的 泄露资源。

数量峰值

数量峰值同样是资源使用中非常重要的一项指标。所谓 “数量峰值”,是指同一资源在同一帧中出现的最大数量。该指标主要可以帮助您查看项目中是否存在 “冗余资源”。 一般情况下,出现这种问题是由 AssetBundle 资源加载导致的,即在制作 AssetBundle 文件时,部分共享资源(比如 Texture、Mesh 等) 被同时打入到多份不同的 AssetBundle 文件中,从而当加载这些 AssetBundle 时,内存中出现了多费同样的资源,即资源冗余。因此,当资源的数量峰值大于1时,该资源则属于 “疑似冗余资源”,建议您对其进行严格的检测和完善。


字体资源使用情况

UWA Tech Doc

同上,该主要展示项目运行过程中字体资源的“资源名称”、“生存周期”、“内存占用”、“数量峰值” 、“字体尺寸”和 “动态字体”。字体内存往往占据较大的内存占用,因此我们建议您首先通过内存占用 一列进行资源排序,找出占据最大内存的字体资源,并查看其内存分配是否合理。


碰撞体资源的具体使用情况

UWA Tech Doc

碰撞体的使用情况很大程度上影响着物理系统的CPU开销。一般来说,项目中经常使用的碰撞体类型主要有:Box Collider,Sphere Collider,Capsule Collider 和 Mesh Collider。其中,Mesh Collider的物理计算开销最大。因此,在该部分我们将项目运行过程中所检测到的Mesh Collider进行统计和展示,以帮助您进行对物理碰撞体的使用有更为清晰和直观的掌握。

内存占用

碰撞体的内存占用普遍较低,所以,其内存占用一般并不是碰撞体在使用时的主要问题。

数量峰值

对于网格碰撞体而言,其本身并没有“冗余度”的说法,因为场景中往往存在大量相同名称、相同内存占用的碰撞体。一般来说,碰撞体在项目运行过程中的使用情况和数量走势是否合理,是需要您时刻关注的事情。


我们知道,资源泄露 是目前大多数研发团队经常遇到且又难于解决的问题。究其原因,是因为项目中的资源量过于巨大,泄露资源往往很难定位。因此,我们在页面中提供了 资源比较 功能,以帮助您快速定位存在“泄露”的资源信息。

场景资源比较

场景资源比较的具体操作方式如下:

1、选择您想进行比较的场景(目前,支持且仅支持两个场景的资源进行比较);
2、点击“ 选中场景资源比较 ”按钮,即可查看资源比较结果。

UWA Tech Doc

同时,建议您通过以下两种方式进行资源比较,以便您快速找到存在“泄露”问题的资源:

同种类型场景或同一场景进行比较

一般来说,同种场景或同一场景的资源使用应该是较为固定的,比如游戏项目中的主城场景或主界面场景。通过比较不同时刻同一场景的资源信息,可以快速帮您找到其资源使用的差异情况。这样,您只需判断这些“差异”资源的存在是否合理,即可快速判定是否存在资源泄露,已经具体的泄露资源。

不同类型场景进行比较

除一些常驻资源外,不同类型的场景,其资源使用是完全不同的。比如,游戏中主城和战斗副本的资源,除少部分常驻内存的资源外,二者使用的绝大部分资源应该是不一致的。所以,通过比较两种不同类型的场景,您可以直接查看比较结果中的“共同资源”,并判断其是否确实为预先设定好的常驻资源。如果不是,则它很可能是“泄露”资源,需要您进一步查看项目的资源管理是否存在漏洞。


资源使用曲线

您可以点击任何一个资源来查看其随时间的使用情况,从而更加直观地了解资源出现问题时的具体场景和具体情况。
同时,您可以通过与图表进行交互来查看具体一帧的资源数量和内存占用。

UWA Tech Doc

指定场景选择

您可以通过在图表上进行交互来查看具体某一场景的资源使用情况。具体查看方式如下:

1、选择您想查看的场景;
2、点击“查看所选场景资源列表”按钮,即可查看对应场景的资源具体使用情况。

UWA Tech Doc

指定帧选择

此外,您还可以查看具体某一帧的资源使用情况,具体查看方式如下:

1.选择您想看的具体帧;
2.点击“查看所选帧资源列表”按钮,即可查看对应帧的资源具体使用情况。

UWA Tech Doc

对于资源管理问题,我们建议开发者一定慎重对待,不要因为只有几个“泄露”资源就将其忽视,因为您看到的很可能只是冰山一角,如不及时解决,后患无穷。





原文出处:侑虎科技
转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。

目录
相关文章
|
测试技术 程序员 C++
iOS:项目中无用类检测和无用图片检测汇总
在涉及到项目大改版,或者涉及到某个功能模块大变更,就会涉及到图片废弃和文件废弃的情况。 但是这时候就会遗留下一个很大的问题,没有将废弃的、无用的文件类或资源删除干净。而这次需要对工程代码的无用资源和无用文件进行删除处理,感触颇多,故在此笔记。 首先,感觉很多人的代码习惯还是恶待提高。比如我发现一些人的代码操作习惯,从好到次,可以大略分以下情况
1367 0
iOS:项目中无用类检测和无用图片检测汇总
|
18天前
|
文字识别 BI
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
91 8
|
10月前
|
文字识别 测试技术 数据安全/隐私保护
案例:批量区域识别内容重命名,批量识别扫描PDF区域内容识别重命名,批量识别图片区域内容重命名图片修改图片名字,批量识别图片区域文字并重命名,批量图片部分识别内容重命文件,PDF区域内容提取重命名
该内容介绍了如何使用区域识别重命名软件高效整理图片,例如将图片按时间及内容重命名,适用于简历、单据等识别。文中提供了软件下载链接(百度云盘和腾讯网盘),并列出软件使用的几个关键条件,包括文字清晰、文件名长度限制等。示例展示了银行单据和公司工作单据的识别情况。文章还提及OCR技术在图片文字识别中的应用,强调了识别率、误识率和用户友好性等评估指标。如有类似需求,读者可留言或下载软件测试,并提供图片以获取定制的识别方案。
442 2
|
10月前
|
存储 算法 C语言
【C/C++ 应用开发 检测文件 】详解 C/C++ 中常用的 5 种文件存在检查方式
【C/C++ 应用开发 检测文件 】详解 C/C++ 中常用的 5 种文件存在检查方式
354 0
|
算法 JavaScript 前端开发
404页面检测
要检测一个网页是否是404页面,你可以尝试以下方法: HTTP状态码检查:发送HTTP请求并检查返回的状态码。如果网页是404页面,服务器将返回404状态码。你可以使用编程语言或工具(如Python的requests库)发送HTTP请求,并检查返回的状态码是否为404。
102 0
|
XML 安全 数据格式
网页 视频作为背景(解决google浏览器无法访问本地资源的问题)
网页 视频作为背景(解决google浏览器无法访问本地资源的问题)
193 0
网页 视频作为背景(解决google浏览器无法访问本地资源的问题)
|
Web App开发 Windows
如何去除文件的打开方式,恢复默认打开方式\如何消除默认打开方式
如何去除文件的打开方式,恢复默认打开方式(http://zhidao.baidu.com/question/302937707.html) 开始-运行(win7没有运行在这一说)- 输入cmd-- 回车,在命令提示符下输入下面命令 for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1 这个命令用于恢复所有默认打开方式。
1447 0
|
Go 图形学 Android开发
Unity 之 自动设置导入资源属性选项(模型、图片、声音)
在项目开发中会经常性的更换、导入很多资源,而且对于资源的设置容易出现设置错误或者忘记设置的情况,下面的Code是用untyi自带的AssetPostprocessor功能把导入的资源根据一定的规则自动设置对应的格式选项,使用的时候也很方便,只需要把脚本...
2765 0