【发布时间】:2016-03-16 08:24:11
【问题描述】:
我们目前正在开发一个严重依赖 JavaFx 网络视图的应用程序。布局由 FXMLLoader 加载,并包含一个带有多个事件的 webview,如 OnScroll、OnMousePressed 和 OnMouseReleased。
关闭包含此布局的舞台后,舞台从内存中正确释放,但控制器类保留。我在 VisualVM 的帮助下调查了这个问题。
每次我打开和关闭一个阶段时,都会有一个新的控制器类被加载到内存中并保留在那里。
在下面的屏幕截图中,您可以看到离我的控制器类最近的 GC 根。突出显示的是我的 webview 的 OnScroll 事件。如果我要删除此事件,则下一个事件 (OnMouseReleased) 将在此跟踪中取代它。
我们使用的是 java 版本 jdk1.8.0_65 和 JavaFx 版本 8.0.65-b17。
我不确定我做错了什么,或者它是否是 JavaFx 中的错误。但是,这对我们来说是一个阻碍,非常感谢任何帮助。
祝你好运, 马曾
【问题讨论】:
标签: java javafx memory-leaks webview