在java中,在Canvas类中,我听到有人解释过,当你从1到2和2到3时,更大的缓冲区更有效,但是在3以上它没有什么区别。为什么缓冲区大小不超过3会显着提高速度,而createBufferStrategy(2)到createBufferStrategy(3)的增加是如何工作的呢?
答案 0 :(得分:3)
当且仅当您不想在动画中撕裂时才会出现性能问题:在这种情况下,您必须等待系统以便在再次更改此缓冲区之前完成缓冲区的显示。
因此,使用1个缓冲区,您必须等待,什么也不做。 使用2缓冲区时,您可以在显示第一个缓冲区时写入另一个缓冲区,但如果速度足够快,您可能会在开始下一帧之前等待。 使用3个缓冲区,您可以再做一些事情而不是等待。
在完全显示第一个缓冲区之前,不太可能在第三个缓冲区中完成绘制,因此增益非常低于3缓冲区。
请注意,您使用的缓冲区越多,托管这些缓冲区所需的内存就越多。这在普通计算机上不是问题,但它可以用于手机应用程序。