2023-02-16 322
我试图通过在Javafx中使用WebView来制作UI,但是有一个问题,当使用弹出窗口打开大图像时,内存使用情况非常大,并且关闭弹出窗口时,内存的使用情况不会下降. ,我通过Windows中的任务管理器看到了内存使用率,
当使用WebView打开大约8MB的图像时,内存达到了300MB,我不明白为什么它如此大,
我尝试了
stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
webengine.load(null);
}
});
但仍然不要使记忆释放
可能,您正在看到一个 rt-33729 WebView elevs wcimgdecoderimpl instances wcimgdecoderimpl instances 目前针对Java 8U20的目标.在RT-33729中,开发人员(Leonid Popov)写道:
WebKit有许多用于网页的资源的缓存,包括图像.
即使没有
再引用了,以防用户按”返回”以避免
加载已经加载的资源,而它们不会保留太多
堆空间.请参阅Webkit源代码中的评论中的详细信息:wcimgdecoderimpl的实例通过JNI引用
imagesRimage的引用由cachedimage的引用
存储在MemoryCache中.我通过修改缓存进行了测试,以便它
完全扫除了其缓存的资源,并观察到
wcimgdecoderimpl已经消失了.而wcimgdecoderimpl的实例
可以从Webkit本机代码访问,这并不是没有用的.重点
是Webkit统治WCIMGDECODERIMPL的生命周期
通过JNI.调查如何强行冲洗此缓存
在删除WebView上,仍在继续.从描述中谈论测试应用程序.当您删除
场景中的WebView,它不会立即被删除(所以
不发布任何资源).相反,它已注册
在处理器线程(类似于AWT使用的线程)
在特定时间回电,并导致本地资源正在使用
WebEngine发布.另外,我建议在删除之前导航到”大约:空白”
WebView;它将立即发布一些资源.
但是,也许您完全看到了其他东西,我无法确定地告诉您,例如 RT-35262 JVM崩溃是由于内存泄漏/webkit中的内存泄漏,也将解决Java 8U20或 RT-34630 WebView内存泄漏当JavaScript回调分配时,将解决Java9.
.
我的代码(对我有用),灵感来自Jewelsea的答案.
// Delete cache for navigate back
webEngine.load("about:blank");
// Delete cookies
java.net.CookieHandler.setDefault(new java.net.CookieManager());
我已经广泛搜索了互联网并找到了各种解决方案,不幸的是,它们都没有构成我.看起来,无论做什么,现场都被JFXPanel弄清楚了.对我有用的是以下;
Scene scene = getScene();
jfxPanel.removeAll();
jfxPanel.setScene(scene);
WebView webView = (WebView) scene.getRoot();
webView.getWebEngine().load(url);
getCene()重新使用了以前创建的场景(带有WebView和WebEngine),当创建一个新场景时,JFXPANEL变得不可见.因此,解决方案在于删除和重新设置现有场景,然后加载URL.
以上所述是小编给大家介绍的如何在关闭阶段后清除Javafx Webview内存使用情况,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/33846.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态