Some functions to get system information.
More...
#include <OpenMS/SYSTEM/SysInfo.h>
|
| struct | MemUsage |
| | A convenience class to report either absolute or delta (between two timepoints) RAM usage. More...
|
| |
Some functions to get system information.
Supports current memory and peak memory consumption.
◆ getAvailablePhysicalCores()
| static UInt getAvailablePhysicalCores |
( |
const std::vector< int > & |
cpus = {} | ) |
|
|
static |
The number of physical cores the process may run on (at least 1).
Counts cores, not their hardware threads (SMT), which std::thread::hardware_concurrency() and omp_get_num_procs() count. On Linux: the cores of the CPUs in the affinity mask of the calling thread (taskset, cpusets), or of cpus if given (e.g. the CPUs of the OpenMP places, if the OpenMP runtime has bound the calling thread already), at most the CPU quota of the cgroup of the process and of those above it as far as visible (cgroup v2 cpu.max, rounded up). On macOS: hw.physicalcpu. On Windows: the cores of the processors in the affinity mask of the process, in the processor group of the calling thread. Falls back to the hardware threads where this cannot be found out.
- Parameters
-
| cpus | Linux only: the logical CPUs (numbers as in /sys/devices/system/cpu) to count the cores of instead of those of the affinity mask |
◆ getFreeSystemMemory()
| static bool getFreeSystemMemory |
( |
size_t & |
mem_available | ) |
|
|
static |
Get currently available physical system memory in KiloBytes (KB).
On Linux this prefers MemAvailable from /proc/meminfo so file-system cache that can be reclaimed by the kernel is counted as available.
- Parameters
-
| [out] | mem_available | Available physical system memory |
- Returns
- True on success, false otherwise. If false is returned, then
mem_available is set to 0.
◆ getProcessId()
| static Int64 getProcessId |
( |
| ) |
|
|
static |
@brief Get the current process ID
@return The process ID of the current process
◆ getProcessMemoryConsumption()
| static bool getProcessMemoryConsumption |
( |
size_t & |
mem_virtual | ) |
|
|
static |
Get memory consumption in KiloBytes (KB) On Windows, this is equivalent to 'Peak Working Set (Memory)' in Task Manager. On other OS this might be very unreliable, depending on operating system and kernel version.
- Parameters
-
| [out] | mem_virtual | Total virtual memory currently allocated by this process |
- Returns
- True on success, false otherwise. If false is returned, then
mem_virtual is set to 0.
◆ getProcessPeakMemoryConsumption()
| static bool getProcessPeakMemoryConsumption |
( |
size_t & |
mem_virtual | ) |
|
|
static |
Get peak memory consumption in KiloBytes (KB) On Windows, this is equivalent to 'Working Set (Memory)' in Task Manager. On other OS this might be very unreliable, depending on operating system and kernel version.
- Parameters
-
| [out] | mem_virtual | Total virtual memory allocated by this process |
- Returns
- True on success, false otherwise. If false is returned, then
mem_virtual is set to 0.