80 lines
2.3 KiB
Markdown
80 lines
2.3 KiB
Markdown
|
# Process Manager UI for Electron Apps
|
||
|
|
||
|
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](https://badge.fury.io/js/electron-process-manager.svg)](https://badge.fury.io/js/electron-process-manager)
|
||
|
|
||
|
![screenshot](https://github.com/getstation/electron-process-manager/raw/master/.github/screenshots/window.png)
|
||
|
|
||
|
:warning: For `@electron>=3.0.0`
|
||
|
|
||
|
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)
|
||
|
- [x] Kill a process from the UI
|
||
|
- [x] Open developer tools for a given process
|
||
|
- [x] CPU metrics
|
||
|
- [x] Sort by columns
|
||
|
|
||
|
⚠️ Unfortunately, memory info are no longer available in Electron>=4 (see [electron/electron#16179](https://github.com/electron/electron/issues/16179))
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
```bash
|
||
|
$ npm install electron-process-manager
|
||
|
```
|
||
|
|
||
|
## Usage
|
||
|
```js
|
||
|
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:
|
||
|
```js
|
||
|
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
|