7 性能提示
可以做:
-
按创建和销毁频率(LIFO)对实体的创建顺序进行排序:通常要创建和销毁的实体应最后完成。应首先创建永远不会销毁的实体,然后创建很少被删除/销毁的实体。
-
尽可能使用实例化:InstancedObjects 是轻量级的,具有较少的 RenderQueue 和 API 绘制调用开销
-
将装备中的骨骼数量减少到必要的最低限度。特别是如果要有很多副本的话
-
在销毁整个关卡或退出游戏时,建议禁用清理。除非您的销毁程序符合 LIFO 命令,否则可能会触发多次不必要的清理,从而减慢关机程序的速度。如果关卡正在被销毁,但游戏仍在运行,请重新启用清理,并在销毁所有涉及的对象后显式执行清理。
不要做:
-
不要经常更新以SCENE_STATIC创建的对象。仅更新一个 SceneNode 或 Entity 将强制更新其中的许多节点,可能是全部;从而抵消了SCENE_STATIC的性能优势。
-
不要以SCENE_DYNAMIC创建从不移动、旋转或缩放的对象
-
不要创建使用任何以前执行的render_scenes未使用的渲染队列的阴影节点。例如。将影子节点的传递设置为rq_first 0 和 rq_last 5;而常规pass的render_scene仅为1 rq_last 4 rq_first
-
指定的线程数不要超过可用内核数。如果你的代码完全使用(即)2个内核,那么将2个内核减去线程数(不要超额订阅)。 1
注意:最小线程数为 1。一个 CPU = 一个线程。 SceneManager 将其工作委托给工作线程并进入睡眠状态。 ↩︎