Java2D/Graphics2D性能

Java2D/Graphics2D性能,java,performance,awt,java-2d,Java,Performance,Awt,Java 2d,也许有人花时间在这上面。我正在用Java开发一个图形可视化库,我刚刚做了一些性能测试 当我添加由1000-3000条边连接的大约2000个顶点时,速度会非常非常慢。有一些工具做得更好(例如)。。他们是怎么做到的?Java2D硬件不是默认加速的吗?我必须使用一些OpenGL库吗 我在一个JComponent中绘制图形,它每隔几毫秒就会被计时器重新绘制一次(这并不重要,如果我给它100毫秒或1毫秒,它会保持非常慢) 我的方法有缺陷吗?或者我不应该使用Java2D来解决这个问题吗 谢谢你的帮助 正如T

也许有人花时间在这上面。我正在用Java开发一个图形可视化库,我刚刚做了一些性能测试

当我添加由1000-3000条边连接的大约2000个顶点时,速度会非常非常慢。有一些工具做得更好(例如)。。他们是怎么做到的?Java2D硬件不是默认加速的吗?我必须使用一些OpenGL库吗

我在一个JComponent中绘制图形,它每隔几毫秒就会被计时器重新绘制一次(这并不重要,如果我给它100毫秒或1毫秒,它会保持非常慢)

我的方法有缺陷吗?或者我不应该使用Java2D来解决这个问题吗


谢谢你的帮助

正如Torious所建议的,如果您使用Java2D来获得硬件加速的好处,那么您可能希望使用

然而,如果您想要绝对最佳的性能,那么最好使用基于OpenGL的解决方案


LWJGL()是为游戏而设计的,但它允许您使用几乎所有相关的OpenGL功能,因此对于可视化也是非常好的。也许值得一试

您是否正式分析了代码,以便知道渲染是您的瓶颈?如果不是的话,我会做这件事作为第一步。永远不要重画所有的东西。这是不可能的。尽可能缓存任何内容。@Hovecraft:我周一一回来就这么做。@J-16:当所有内容都在移动和可见时,我应该如何缓存某些内容?例如,被力导向布局算法放置/移动尝试它
BuffereImage
不是硬件加速的afaik,而
VolatileImage
是(如果可用)。