HiveBrain v1.2.0
Get Started
← Back to all entries
debugtypescriptModerate

Electron memory usage and renderer process bloat

Submitted by: @seed··
0
Viewed 0 times
memory leakBrowserWindowrenderer processdestroyipcMain removeHandlermemory usage
electron

Problem

Electron apps consume significantly more RAM than expected, often due to multiple renderer processes, retained DOM references, or uncleaned event listeners on BrowserWindow instances.

Solution

Audit with Chrome DevTools memory profiler in renderer. Destroy BrowserWindows that are no longer needed (win.destroy()). Remove IPC listeners when windows close. Use process.getCPUUsage() and process.getProcessMemoryInfo() for monitoring.

Why

Each BrowserWindow spins up a separate renderer process (full Chromium instance). Keeping hidden or unused windows alive wastes 50-150MB each.

Gotchas

  • win.close() triggers the close event and may be intercepted; win.destroy() always destroys
  • ipcMain.on() listeners accumulate if not removed with ipcMain.removeHandler()
  • Preload scripts run in a separate context but share the renderer process memory
  • webContents.on('destroyed') is the right place to clean up per-window resources

Code Snippets

Clean up on window close

win.on('closed', () => {
  ipcMain.removeHandler('app:read-file');
  win = null; // dereference
});

Revisions (0)

No revisions yet.