Java 图形2D绘图性能

Java 图形2D绘图性能,java,performance,graphics2d,Java,Performance,Graphics2d,我正在尝试在Swing组件中使用JavaGraphics2D对象手动绘制“东西”,当我达到大约>2000个正方形时,我命令对象绘制,它变得非常慢 我不知道这是否“普遍”。要渲染的2000个对象真的“很多”吗?Graphics2D对象的性能不是很好吗?在我尝试更复杂的东西之前,我应该停止现在的工作,转而使用JOGL吗?现在已经太晚了。我编写了一个Java Spirograph GUI,它可以在20毫秒或更短的时间内绘制数万条线段 确保您正在应用程序的其他位置进行计算。您的绘图代码应该做一件事,而

我正在尝试在Swing组件中使用Java
Graphics2D
对象手动绘制“东西”,当我达到大约>2000个正方形时,我命令对象绘制,它变得非常慢


我不知道这是否“普遍”。要渲染的2000个对象真的“很多”吗?
Graphics2D
对象的性能不是很好吗?在我尝试更复杂的东西之前,我应该停止现在的工作,转而使用JOGL吗?现在已经太晚了。

我编写了一个Java Spirograph GUI,它可以在20毫秒或更短的时间内绘制数万条线段

确保您正在应用程序的其他位置进行计算。您的绘图代码应该做一件事,而且只能做一件事:绘图

然而,图形和图形的速度有一个实际的限制。这个螺旋描记器花了172毫秒绘制了250000条线段


为了更好地帮助我,我计划在绘图之前,每秒重新绘制大约10次整个区域,同时对每个对象的UI后面的逻辑进行大量计算。绘图算法只需在地图的一个条目集上迭代,并获取它找到的每个对象,将其分成25个图块,然后在屏幕上绘制每个图块。在绘图算法中,“获取”这些对象(仅来自引用)的逻辑是否有点过多?@salbeira:每个对象都有25个平铺,还是整个条目集都有25个平铺?如果每个对象有25个平铺,有多少个平铺重叠?如果你消除重叠,你可以加快速度。没有重叠。它基本上是一个由minecraft的块启发的chuncking系统。我将一个区块保存在地图中,检索它并根据它的相对位置绘制它,方法是获取区块中的每个对象,然后根据该对象是什么绘制一些东西。现在只是一些测试,看看它工作得有多好。