4

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

4

1 回答 1

3

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

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

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

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

于 2013-01-08T14:47:29.993 回答