/electron-process-manager

Process manager UI for Electron applications - Fork with support for @electron/remote

Primary LanguageJavaScript

Process Manager UI for Electron Apps

Fork using @electron/remote instead of builtin remote module

  • Minimum electron version is 10
  • @electron/remote is a peerDependency. It needs to be initialized in the main process. Follow the instructions in the link.

Original 1.0 Readme

This package provides a process manager UI for Electron applications.

It opens a window displaying a table of every processes run by the Electron application with information (type, URL for webContents, memory..).

npm version

screenshot

⚠️ For @electron>=3.0.0, <7.x, use version 0.7.1 of this package. For versions >=7.x, use latest.

It can be useful to debug performance of an app with several webview.

It's inspired from Chrome's task manager.

Features

  • Memory reporting
  • Link memory data to web-contents (for electron >=1.7.1)
  • Kill a process from the UI
  • Open developer tools for a given process
  • CPU metrics
  • Sort by columns

⚠️ Unfortunately, memory info are no longer available in Electron>=4 (see electron/electron#16179)

Installation

$ npm install electron-process-manager

Usage

const { openProcessManager } = require('electron-process-manager');

openProcessManager();

Options

openProcessManager function can take options in paramters

options.defaultSorting

defaultSorting.how: 'ascending' | 'descending'

defaultSorting.path:

Field name path
Pid 'pid'
WebContents Domain 'webContents.0.URLDomain'
Process Type 'webContents.0.type'
Private Memory 'memory.privateBytes'
Shared Memory 'memory.sharedBytes'
Working Set Size 'memory.workingSetSize'
% CPU 'cpu.percentCPUUsage'
Idle Wake Ups /s 'cpu.idleWakeupsPerSecond'
WebContents Id 'webContents.0.id'
WebContents Type 'webContents.0.type'
WebContents URL 'webContents.0.URL'

example:

const { openProcessManager } = require('electron-process-manager');

openProcessManager({ how: 'descending', path: 'cpu.percentCPUUsage' });

Future

  • Add physical memory (noted as "Memory" in Chrome's task manager)
  • Add networks metrics

Pull requests welcome :)

License

MIT License