Java 如何将数据缓冲到渲染器?

Java 如何将数据缓冲到渲染器?,java,data-structures,buffer,Java,Data Structures,Buffer,提前感谢您的帮助 我正在用LWJGL用Java制作一个2D游戏,我正在将渲染器和游戏逻辑分离到不同的线程中 为此,我必须将视图中的世界数据放入缓冲区,然后将其传递给渲染器线程 数据是由世界组成的,世界是静态的,可以通过引用传递,但实体太动态了,无法这样做。实体的最大数量将是几百到几千个。 因为渲染器只绘制精灵,所以我想用精灵的数据结构和绘制它们的坐标填充缓冲区,渲染器可以从中读取。这是每秒60帧 我可以使用LinkedList或Arraylist,但不同的数据计数和创建删除可能会导致太多的开销。

提前感谢您的帮助

我正在用LWJGL用Java制作一个2D游戏,我正在将渲染器和游戏逻辑分离到不同的线程中

为此,我必须将视图中的世界数据放入缓冲区,然后将其传递给渲染器线程

数据是由世界组成的,世界是静态的,可以通过引用传递,但实体太动态了,无法这样做。实体的最大数量将是几百到几千个。 因为渲染器只绘制精灵,所以我想用精灵的数据结构和绘制它们的坐标填充缓冲区,渲染器可以从中读取。这是每秒60帧

我可以使用LinkedList或Arraylist,但不同的数据计数和创建删除可能会导致太多的开销。我还看到了其他代码中使用的其他缓冲区类型,尽管我不了解它们,所以我怀疑还有其他选择,更不用说我对基本类型的性能限制也不是很有经验


构建缓冲区的好方法是什么?

为什么不使用固定大小的数组并一直指向新对象?动态更改集合将触发垃圾收集,这将降低应用程序的速度。试着分析一下,看看减速的地方。我基于LinkedList实现了一个有点复杂的结构,因为有人在其他地方指出GC在新对象上非常有效,在这种情况下,新对象只是迭代器。如果这不起作用,我想我会尝试一种固定数组的方法,但是对象的数量可能会有很大的变化。