/current-processes-forked

Node.js library to get a snapshot of the currently running processes, OS-agnostic

Primary LanguageJavaScript

current-processes

Build Status Coverage Status Dependency Status npm version npm Downloads

Node.js library to get a snapshot of the currently running processes, OS-agnostic. Needs root/Admin permissions.

Usage example

import _ from 'lodash';
import ps from 'current-processes';

ps.get((err, processes) => {

    const sorted = _.sortBy(processes, 'cpu');
    const top5  = sorted.reverse().splice(0, 5);

    console.log(top5);
});

Process object

The library will return an array consisting of multiple process objects, structured like this:

{
    pid: 1337,               // Process ID
    name: 'chrome',          // Process name
    mem: {
        private: 23054560,   // Private memory, in bytes
        virtual: 78923608,   // Virtual memory (private + shared libraries + swap space), in bytes
        usage: 0.02    	     // Used physical memory (%) by this process
    },
    cpu: 0.3                 // CPU usage (%) as reported by `ps` and `wmic`
}

Platform-specific notes

Windows

WMI (specifically wmic) is used to gather the information itself. WMI is fairly slow the first time it's called, it might even take up to 2-3 seconds. Make sure your app will gracefully handle this. Subsequent calls will be much faster.