【问题标题】:Java2D / Graphics2D performanceJava2D / Graphics2D 性能
【发布时间】: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


【解决方案1】:

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

但是 - 如果您想要绝对的最佳性能,您最好选择基于 OpenGL 的解决方案。

LWJGL (http://lwjgl.org/) 专为游戏而设计,但允许您使用几乎所有相关的 OpenGL 功能,因此也非常适合可视化。可能值得一试!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    相关资源
    最近更新 更多