在我的应用程序中,当长时间运行JxBrowser时,它消耗了如此巨大的RAM,所以我决定处理&为Browser重新创建另一个实例。但是当处置时,有时BrowserCore进程不会被终止。是一个bug还是处理浏览器无法保证它会杀死BrowserCore进程?
答案 0 :(得分:1)
无法保证渲染过程将被终止。它可以由例如弹出浏览器窗口保存。 Chromium引擎决定何时终止浏览器进程。
但是,保证在所有浏览器实例都被终止的情况下终止BrowserCore进程。
答案 1 :(得分:0)
我尝试使用Browser.dispose()
,但是它不起作用。
只有Engine.close()
会销毁您创建的引擎的所有“ BrowserCore Chromium本机进程”。 我想,是否有办法回收所有Chromium Native Process。由于每次创建引擎都是昂贵且缓慢的,因此,如果我为此应用程序使用单个引擎,则每次打开浏览器时,它都会创建一个Chromium本机进程,该进程不会单独被Browser.dispose()杀死。
答案 2 :(得分:0)
我必须手动处理创建的浏览器并创建一个新的浏览器。但是有时候,dispose方法不起作用,我需要迭代所有现有的浏览器并杀死它们:
import com.teamdev.jxbrowser.chromium.internal.ipc.IPC;
IPC.getBrowsers().forEach(Browser::dispose);