[英]JavaFx Webview memory leak on events
我们目前正在开发一个非常依赖JavaFx Web视图的应用程序。 布局由FXMLLoader加载,并包含一个Web视图,其中包含多个事件,如OnScroll,OnMousePressed和OnMouseReleased。
关闭包含此布局的舞台之后,舞台将从内存中正确释放,但控制器类保留。 我在VisualVM的帮助下调查了此问题。
每次我打开和关闭一个阶段时,都会将一个新的控制器类加载到内存中并保留在那里。
在下面的屏幕截图中,您可以看到离我的控制器类最近的GC根。 突出显示的是我的Webview的OnScroll事件。 如果我要删除此事件,则下一个事件(OnMouseReleased)将取代此事件。
我们正在使用Java版本jdk1.8.0_65和JavaFx版本8.0.65-b17。
我不确定我是在做错什么,还是JavaFx中的错误。 但是,对于我们来说,这是一个表演停止器,我们将不胜感激。
最好的祝愿,Mazen
我找到了。
问题不是webview事件。 问题甚至不是webview本身。 经过进一步调查,我发现整个场景以及其中的每个组件仍在内存中。
问题是我的布局中有ProgressIndicator。 如果将其设置为不确定状态,则会阻止场景收集垃圾。 在关闭舞台之前将进度重置为0(因此确定),可以解决我的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.