Node.js library to get a snapshot of the currently running processes, OS-agnostic. Needs root/Admin permissions.
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);
});
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`
}
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.