如何通过优化渲染引擎资源加载实现长尾词效果?
- 内容介绍
- 相关推荐
本文共计1224个文字,预计阅读时间需要5分钟。
渲染引擎资源加载优化+针对特定渲染引擎的性能提升,主要关注的是实时渲染的帧率。另一方面,对于轻量级引擎,用户不会对场景加载感到焦虑,同时保持一个较长的加载时间预期。
渲染引擎的资源加载优化针对一个渲染引擎的性能,最主要的当然是实时渲染的帧率。另一方面,对于轻型的引擎来说,用户不会对场景加载
保有一个较长的加载时间的心理预期,最好是,点击按键,瞬间整个场景出现,毕竟轻量应用场景不是重型游戏。针对
这种需求,我们需要对资源加载做一个全面的性能排查与优化。
根据《Unix编程艺术》中的描述,性能优化最好是不要优化,如果要优化那么花费一点时间把 bottle neck 找到是很有
必要的。所以在我的优化工作中,我首先对整个系统做了较为完整的 profile. 我大致将整个资源加载部分逻辑分成了
自顶向下的三层:
- meshrender 层:整个场景存在若干个 meshrender,该层级统计各个 meshrender 的加载时间
- resource 层:每个meshrender 依赖若干资源:mesh, material, skin/animation 等等
- detailed resource 层:对每个 resource 的详尽的分部统计,不同的 resource 步骤也不同
对我们的整个引擎的加载部分,分层级自上而下统计,对每个 meshrender 统计得到的情况如下表,其中分别有几个模块:
Mesh Material Skin 各占一部分,同时图片的加载已经使用了异步线程加载方式,故不统计在总时间内(加载图的子
线程在主加载线程完成任务之前就已经完成结束)。
本文共计1224个文字,预计阅读时间需要5分钟。
渲染引擎资源加载优化+针对特定渲染引擎的性能提升,主要关注的是实时渲染的帧率。另一方面,对于轻量级引擎,用户不会对场景加载感到焦虑,同时保持一个较长的加载时间预期。
渲染引擎的资源加载优化针对一个渲染引擎的性能,最主要的当然是实时渲染的帧率。另一方面,对于轻型的引擎来说,用户不会对场景加载
保有一个较长的加载时间的心理预期,最好是,点击按键,瞬间整个场景出现,毕竟轻量应用场景不是重型游戏。针对
这种需求,我们需要对资源加载做一个全面的性能排查与优化。
根据《Unix编程艺术》中的描述,性能优化最好是不要优化,如果要优化那么花费一点时间把 bottle neck 找到是很有
必要的。所以在我的优化工作中,我首先对整个系统做了较为完整的 profile. 我大致将整个资源加载部分逻辑分成了
自顶向下的三层:
- meshrender 层:整个场景存在若干个 meshrender,该层级统计各个 meshrender 的加载时间
- resource 层:每个meshrender 依赖若干资源:mesh, material, skin/animation 等等
- detailed resource 层:对每个 resource 的详尽的分部统计,不同的 resource 步骤也不同
对我们的整个引擎的加载部分,分层级自上而下统计,对每个 meshrender 统计得到的情况如下表,其中分别有几个模块:
Mesh Material Skin 各占一部分,同时图片的加载已经使用了异步线程加载方式,故不统计在总时间内(加载图的子
线程在主加载线程完成任务之前就已经完成结束)。

