Java 8u40 Swing GUI性能

时间:2017-08-28 14:56:47

标签: java swing user-interface

我有一个应用程序正在呈现非常复杂的Swing GUI。 GUI包含大约60,000个不同的控件(大多数是标签,更少的文本字段)。基本上,它是一个表格,其中每个单元格都包含一个独立的控件,只有很少的标签和文本框。

我突然遇到的问题与之后(包括)8u40的java版本有关。项目使用JDK 8u122构建。当我使用Java 8u31运行我的应用程序时,一切都运行良好和流畅。当我使用8u31之前的任何Java(JRE)运行我的应用程序时,应用程序开始渲染我的复杂控件,然后很快就会占用100%的CPU,并且所有块都被阻止,我必须杀死我的应用程序。

为什么?我正在检查8u40的补丁说明,但我找不到任何可能导致这么大的减速的东西。

你有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这似乎与我使用的-XX:-UseAdaptiveSizePolicy VM参数有关!

没有它,即使在较新的Java版本上也能正常工作。

现在,有了这么多控件,我需要{{1}}