resusage 0.2.6
Virtual memory, RAM, CPU usage by system or process
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
This package provides sub packages which can be used individually:
resusage:totalusage - A minimal D application.
resusage:processusage - A minimal D application.
resusage:cpuwatcher - A minimal D application.
resusage:cpuselfwatcher - A minimal D application.
Resusage
Obtaining of virtual memory, RAM and CPU usage by the whole system or by single process.
Currently works on Linux and Windows. FreeBSD support is partial - only system-wide memory information can be retrieved now.
Generating documentation
Ddoc:
dub build --build=docs
Ddox:
dub build --build=ddox
Brief
// import module
import resusage.memory;
// or the whole package
import resusage;
// get system memory usage
SystemMemInfo sysMemInfo = systemMemInfo();
// access properties
sysMemInfo.totalRAM;
sysMemInfo.usedRAM;
sysMemInfo.freeRAM;
sysMemInfo.totalVirtMem;
sysMemInfo.usedVirtMem;
sysMemInfo.freeVirtMem;
// actualize values after some amount of time
sysMemInfo.update();
// get memory usage of the current process
ProcessMemInfo procMemInfo = processMemInfo();
// or pass process ID to get info about specific process
int pid = ...;
ProcessMemInfo procMemInfo = processMemInfo(pid);
// access properties
procMemInfo.usedVirtMem;
procMemInfo.usedRAM;
// actualize values after some amount of time
procMemInfo.update();
//import module
import resusage.cpu;
// create watcher to watch system CPU
auto cpuWatcher = new SystemCPUWatcher();
// get actual value when needed
double percent = cpuWatcher.current();
// create CPU watcher for current process
auto cpuWatcher = new ProcessCPUWatcher();
// or for process with given id
int pid = ...;
auto cpuWatcher = new ProcessCPUWatcher(pid);
// get actual value when needed
double percent = cpuWatcher.current();
Examples
Total usage
Prints total amount of virtual and physical memory (in bytes) and their current usage in the system (in percents).
dub run resusage:totalusage
Process usage
Prints amount of virtual and physical memory currently used by process, in bytes.
dub run resusage:processusage -- `pidof process`
CPU Watcher
Watch system CPU time:
dub run resusage:cpuwatcher
Watch process CPU time:
dub run resusage:cpuwatcher -- `pidof process`
Spawn prcoess and watch for its CPU time:
dub run resusage:cpuwatcher -- --spawn firefox
Adjust the rate of output:
dub run resusage:cpuwatcher -- --rate=1 --spawn firefox
CPU self watcher
Consume CPU time and report CPU usage by this process:
dub run :cpuselfwatcher -- --threads=2
E.g. if you have 4 cores and run this example with 2 threads it will report 50% CPU time.
Platform notes and implementation details
Windows
In order to provide some functionality resusage dynamically loads the following libraries at startup:
- GetProcessMemoryInfo to get memory (physical and virtual) used by specific process.
- Pdh.dll to calculate CPU time used by system.
If Psapi.dll or Pdh.dll could not be loaded, corresponding functions will always throw WindowsException.
Linux
Uses sysinfo, clock_gettime and proc stats.
FreeBSD
Uses sysctl to get RAM and libkvm to get swap memory to calculate virtual memory.
- Registered by Roman Chistokhodov
- 0.2.6 released 7 years ago
- FreeSlave/resusage
- BSL-1.0
- Authors:
- Sub packages:
- resusage:totalusage, resusage:processusage, resusage:cpuwatcher, resusage:cpuselfwatcher
- Dependencies:
- none
- Versions:
-
0.4.0 2023-Sep-15 0.3.2 2020-Feb-21 0.3.1 2020-Feb-21 0.3.0 2019-Jul-26 0.2.8 2018-May-05 - Download Stats:
-
-
0 downloads today
-
0 downloads this week
-
6 downloads this month
-
8452 downloads total
-
- Score:
- 1.4
- Short URL:
- resusage.dub.pm