资源检测的正确打开方式

Shader资源具体使用情况

资源检测的正确打开方式

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

内存占用

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

生存周期

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

数量峰值

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


字体资源使用情况

资源检测的正确打开方式

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


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

资源检测的正确打开方式

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

内存占用

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

数量峰值

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


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

场景资源比较

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

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

资源检测的正确打开方式

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

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

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

不同类型场景进行比较

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


资源使用曲线

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

资源检测的正确打开方式

指定场景选择

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

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

资源检测的正确打开方式

指定帧选择

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

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

资源检测的正确打开方式

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





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

上一篇:CorelDraw x6【Cdr x6】官方简体中文破解版(64位)安装图文教程、破解注册方法


下一篇:牛逼 IDE 插件,一键部署 Docker 镜像,开发部署提速 8 倍