electron-内存-垃圾回收-window.gc
主进程开启暴露垃圾回收方法
js
// main.js
const { app, BrowserWindow } = require("electron");
// 在应用程序启动之前添加此行
app.commandLine.appendSwitch("js-flags", "--expose-gc");
let mainWindow;
app.whenReady().then(() => {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
});
mainWindow.loadFile("index.html");
});渲染进程添加 window.gc() 方法
js
// 检查 window 对象上是否存在 gc 方法
if (window.gc) {
// 手动触发垃圾回收
window.gc();
} else {
// 如果 gc 方法未暴露,输出错误信息
console.error("GC is not exposed");
}注释说明:
if (window.gc): 判断window对象是否有gc方法,这是因为手动垃圾回收功能需要提前暴露。window.gc(): 如果存在gc方法,调用它来手动触发垃圾回收。else: 如果gc方法不存在,执行以下代码。console.error("GC is not exposed"): 输出一条错误信息,提示垃圾回收方法未被暴露,需要检查是否已正确配置了--expose-gc标志。
注意事项:
- 手动垃圾回收:一般情况下,JavaScript 引擎会自动管理内存,手动调用垃圾回收仅在特殊情况下才需要。
- 暴露
gc方法:确保在 Electron 主进程和渲染进程中都启用了--expose-gc,这样window.gc才会存在。
