关于预加载机制对CPU/帧率的影响

Published: 22 Dec 2014 Category: 游戏研发

关于预加载机制对CPU/帧率的影响

一般来说,CPU的使用率和帧率是成正比的,CPU占用的越多帧率越低。

在资源预加载的时候,一般CPU使用率会飙升,这种情况在一定程度内是可以接受的。

有些情况可以优化,但是有些情况几乎不能优化。

在使用资源异步加载函数addImageAsync时,因为创建一个新的线程,所以将资源调入内存期间CPU使用率会超过100%(两线程之和)。

一般来说,优先考虑帧率,CPU使用率不是很重要。

资源预加载时CPU使用率/帧率优化方法:

预加载资源有两种方式:

  • 不考虑帧率,使系统尽快加载完成。

    加载方式:将所有的资源加载代码并行执行,在某几帧内快速加载完成。

    结果:这种情况会造成卡帧,但是会节约加载时间。(异步加载纹理文件不会卡帧,只会CPU飙升,加载其他内容如特效文件、声音文件、3d动画文件等没有异步加载机制的时候,就会造成卡帧)

  • 优化帧率,优化资源预加载界面的表现。

    加载方式:按顺序加载资源,每一帧只加载一类中的一个资源,加载完一个资源后在加载另一个资源,加载一类资源完成后再加载下一类资源。

    结果:加载时间增多,但是帧率会有一定程度的提升,也就是说,在预加载界面中的动画会有更好的表现。

结论:

看策划需求,如果在预加载界面没有太多的元素,尽快加载结束即可。

如果策划要求加载界面有很好的表现,希望玩家可以欣赏加载动画,可以性能优先。(这种情况一般较少,一般会优先加载速度

注:异步资源加载在一定范围内不会卡帧,因为两个线程不会影响。但是如果CPU性能较差,两个线程加起来超过了CPU的可接受程度,那么也会卡帧。