#ifndef GLTB_SYSTEMINFO_H #define GLTB_SYSTEMINFO_H #include namespace gltb { /** * Return number of CPU cores in the machine. */ unsigned int numberOfProcessors(); /** * Return the number of NUMA nodes in the machine. */ unsigned int numberOfNumaNodes(); /** * Return the amount of memory (in bytes) assigned to a NUMA node. */ unsigned long long numaNodeMemorySize(unsigned int node); /** * Return the NUMA node that the given CPU is part of. */ unsigned int numaNodeOfProcessor(unsigned int cpu); /** * Return the total physical RAM installed in the machine (in bytes). */ unsigned long long totalPhysicalMemory(); /** * Return the current amount of unused physical memory in the machine (in * bytes). */ unsigned long long freePhysicalMemory(); /** * Return the total amount of swap space in the machine (in bytes) */ unsigned long long totalSwapMemory(); /** * Return the current amount of unused swap space in the machine (in bytes). */ unsigned long long freeSwapMemory(); /** * Return the size of the cache line for the processors in the machine. * This is a slow function. It is recommended that you cache the result. */ int getDataCacheLineSize(); /** * Return the user's home directory for the current platform. */ std::wstring userDataDirectory(); } #endif