不同的缓冲策略大小如何影响性能?

时间:2012-11-27 00:24:45

标签: java image

在java中,在Canvas类中,我听到有人解释过,当你从1到2和2到3时,更大的缓冲区更有效,但是在3以上它没有什么区别。为什么缓冲区大小不超过3会显着提高速度,而createBufferStrategy(2)到createBufferStrategy(3)的增加是如何工作的呢?

1 个答案:

答案 0 :(得分:3)

当且仅当您不想在动画中撕裂时才会出现性能问题:在这种情况下,您必须等待系统以便在再次更改此缓冲区之前完成缓冲区的显示。

因此,使用1个缓冲区,您必须等待,什么也不做。 使用2缓冲区时,您可以在显示第一个缓冲区时写入另一个缓冲区,但如果速度足够快,您可能会在开始下一帧之前等待。 使用3个缓冲区,您可以再做一些事情而不是等待。

在完全显示第一个缓冲区之前,不太可能在第三个缓冲区中完成绘制,因此增益非常低于3缓冲区。

请注意,您使用的缓冲区越多,托管这些缓冲区所需的内存就越多。这在普通计算机上不是问题,但它可以用于手机应用程序。