我有一个JavaFX TableView,可动态更改列属性(宽度,可见性)以实现多个“自定义设置/列预设”。
每当我更改列设置时,我都注意到了大量未收集的内存。试图用普通的java代码重现这种情况 并且能够通过附加的程序来实现:
注意:启动程序后一切正常!按预期收集内存。一旦我们点击列标题右侧的TableMenuButton(加号),事情似乎就会出现严重错误。它成长 直到OutOfMemoryError。
entry.uid
分析heapdump显示有成千上万的 “StackPane”,“ContextMenuContent $ MenuLabel”和“ContextMenuContent $ MenuItemContainer”实例。
我的问题是:
我用JDK 1_8_(60/91/102)进行了测试。所有虚拟机都表现出相同的行为!