也许外面有人花时间在这上面。我正在使用 Java 开发图形可视化库,我刚刚做了一些性能测试。
当我添加由 1000 - 3000 条边连接的大约 2000 个顶点时,速度变得非常非常慢。有一些工具做得更好(例如 gephi)。他们是怎么做到的?默认情况下,Java2D 硬件不加速吗?我必须使用一些 OpenGL 库吗?
我在 JComponent 中绘制图形,它每隔几毫秒由计时器重新绘制一次(这并不重要,如果我给它 100 毫秒或 1 毫秒,它会保持很慢)。
我的方法有缺陷还是我不应该为此使用 Java2D?
感谢您的帮助!
最佳答案
正如 Torious 建议的那样,您可能想要使用 VolatileImage如果您在 Java2D 中工作以获得硬件加速的好处。
但是 - 如果您想要绝对最佳的性能,您最好选择基于 OpenGL 的解决方案。
LWJGL ( http://lwjgl.org/ ) 专为游戏而设计,但允许您使用几乎所有相关的 OpenGL 功能,因此也非常适合可视化。可能值得一试!
关于Java2D/Graphics2D 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10462952/