如何在javafx表视图中摆脱java堆空间内存问题?

时间:2014-01-03 04:09:03

标签: java javafx javafx-2

我编写了一个应用程序,根据主机和设备之间的通信,它将绘制一个表视图并显示每个通信的数据(对于每个新通信,将创建一个单独的表视图)。但在这样做之后,我面临着堆空间内存的一些问题。在创建了数百个表后,我的应用程序挂起,然后崩溃,但在抛出堆空间内存问题之前没有。我试图增加我的堆空间内存,但它没有解决我的问题。关于这个问题的任何启示对我都有帮助。

2 个答案:

答案 0 :(得分:2)

我遇到了与TableView相同的问题,并收集了如何在http://tomsondev.bestsolution.at/2013/09/19/memoryleaks-javafx-2-2-tableview-and-friends/

解决此问题

答案 1 :(得分:0)

如果我是你,我不会为每个新连接创建一个新表,因为向场景图添加更多节点会影响应用程序的性能,并且会占用更多内存。

见此分析:

应用:AllTablesTest

1)启动2个节点(Hbox,Button)内存消耗:40MB enter image description here

2)我刚刚向scenegraph添加了1070个空表,现在节点数:1071内存消耗:205MB

enter image description here

3)为了确保我再次使用1100个空表运行sampletest,Memory Consumed:209MB enter image description here

应用程序:SingleTableTst

1)节点数3和行(数据计数) - 4000,消耗的内存:47MB enter image description here

显然,单个表是赢家,即使每个表的表列略有不同,也尝试使用包含更多列的单个表。