繁体   English   中英

JavaFx Webview内存泄漏事件

[英]JavaFx Webview memory leak on events

我们目前正在开发一个非常依赖JavaFx Web视图的应用程序。 布局由FXMLLoader加载,并包含一个Web视图,其中包含多个事件,如OnScroll,OnMousePressed和OnMouseReleased。

关闭包含此布局的舞台之后,舞台将从内存中正确释放,但控制器类保留。 我在VisualVM的帮助下调查了此问题。

每次我打开和关闭一个阶段时,都会将一个新的控制器类加载到内存中并保留在那里。

在下面的屏幕截图中,您可以看到离我的控制器类最近的GC根。 突出显示的是我的Webview的OnScroll事件。 如果我要删除此事件,则下一个事件(OnMouseReleased)将取代此事件。 Webview事件泄漏

我们正在使用Java版本jdk1.8.0_65和JavaFx版本8.0.65-b17。

我不确定我是在做错什么,还是JavaFx中的错误。 但是,对于我们来说,这是一个表演停止器,我们将不胜感激。

最好的祝愿,Mazen

我找到了。

问题不是webview事件。 问题甚至不是webview本身。 经过进一步调查,我发现整个场景以及其中的每个组件仍在内存中。

问题是我的布局中有ProgressIndicator。 如果将其设置为不确定状态,则会阻止场景收集垃圾。 在关闭舞台之前将进度重置为0(因此确定),可以解决我的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM