【发布时间】:2012-05-14 19:57:43
【问题描述】:
也许有人在这方面花了很多时间。我正在使用 Java 开发图形可视化库,我刚刚做了一些性能测试。
当我添加由 1000 到 3000 条边连接的大约 2000 个顶点时,它变得非常非常慢。有一些工具做得更好(例如gephi)。他们是怎么做到的? Java2D硬件不是默认加速的吗?我必须使用一些 OpenGL 库吗?
我在 JComponent 中绘制图表,它每隔几毫秒由计时器重绘一次(没关系,如果我给它 100 毫秒或 1 毫秒,它会保持非常慢)。
我的方法有缺陷还是不应该为此使用 Java2D?
感谢您的帮助!
【问题讨论】:
-
您是否正式分析过您的代码,以便知道渲染是您的瓶颈?如果没有,我会先做这个。
-
永远不要重绘所有内容。是不可能的。尽可能缓存。
-
@Hovecraft:我会在星期一回来后尽快完成。
-
@J-16:当一切都在移动并且可见时,我应该如何缓存一些东西?例如。被力导向布局算法放置/移动
-
试试看。
BufferedImage不是硬件加速的 afaik,而VolatileImage是(如果可用)。
标签: java performance awt java-2d