Celero
Memory.h
1 #pragma once
2 
20 
21 #include <celero/Export.h>
22 
23 #include <cstdint>
24 #include <string>
25 
26 namespace celero
27 {
33  class CELERO_EXPORT RAMReport
34  {
35  public:
36  int64_t RamSystemTotal{0};
37  int64_t RamSystemAvailable{0};
38  int64_t RamSystemUsed{0};
39  int64_t RamSystemUsedByCurrentProcess{0};
40  int64_t RamPhysicalTotal{0};
41  int64_t RamPhysicalAvailable{0};
42  int64_t RamPhysicalUsed{0};
43  int64_t RamPhysicalUsedByCurrentProcess{0};
44  int64_t RamPhysicalUsedByCurrentProcessPeak{0};
45  int64_t RamVirtualTotal{0};
46  int64_t RamVirtualAvailable{0};
47  int64_t RamVirtualUsed{0};
48  int64_t RamVirtualUsedByCurrentProcess{0};
49 
50  operator std::string();
51  celero::RAMReport operator-(const celero::RAMReport& x);
52  };
53 
54  // ----------------------------------------------------------------
55  // Physical + Virtual Memory
56 
57  CELERO_EXPORT int64_t GetRAMSystemTotal();
58  CELERO_EXPORT int64_t GetRAMSystemAvailable();
59  CELERO_EXPORT int64_t GetRAMSystemUsed();
60 
64  CELERO_EXPORT int64_t GetRAMSystemUsedByCurrentProcess();
65 
66  // ----------------------------------------------------------------
67  // Physical Memory
68 
73  CELERO_EXPORT int64_t GetRAMPhysicalTotal();
74 
82  CELERO_EXPORT int64_t GetRAMPhysicalAvailable();
83 
87  CELERO_EXPORT int64_t GetRAMPhysicalUsed();
88 
97  CELERO_EXPORT int64_t GetRAMPhysicalUsedByCurrentProcess();
98 
102  CELERO_EXPORT int64_t GetRAMPhysicalUsedByCurrentProcessPeak();
103 
104  // ----------------------------------------------------------------
105  // Virtual Memory
106 
114  CELERO_EXPORT int64_t GetRAMVirtualTotal();
115 
123  CELERO_EXPORT int64_t GetRAMVirtualAvailable();
124 
128  CELERO_EXPORT int64_t GetRAMVirtualUsed();
129 
135  CELERO_EXPORT int64_t GetRAMVirtualUsedByCurrentProcess();
136 
140  CELERO_EXPORT celero::RAMReport GetRAMReport();
141 } // namespace celero
Definition: Archive.h:25
CELERO_EXPORT int64_t GetRAMPhysicalTotal()
The total physical RAM, in bytes.
Definition: Memory.cpp:212
Contans all Memory measurements (in bytes)
Definition: Memory.h:33
CELERO_EXPORT celero::RAMReport GetRAMReport()
Returns a RAMReport class containing all RAM measurements.
Definition: Memory.cpp:400
CELERO_EXPORT int64_t GetRAMPhysicalUsedByCurrentProcess()
On Windows, this is defined by the Working Set Size.
Definition: Memory.cpp:255
CELERO_EXPORT int64_t GetRAMPhysicalAvailable()
The total physical RAM available to the current process, in bytes.
Definition: Memory.cpp:228
CELERO_EXPORT int64_t GetRAMVirtualAvailable()
The amount of non-physical memory (page file) available.
Definition: Memory.cpp:339
CELERO_EXPORT int64_t GetRAMPhysicalUsed()
The total amount of physical RAM minus the amount of physical RAM which is available.
Definition: Memory.cpp:240
CELERO_EXPORT int64_t GetRAMVirtualUsedByCurrentProcess()
On Windows, this is defined as the commit charge.
Definition: Memory.cpp:365
CELERO_EXPORT int64_t GetRAMVirtualTotal()
The total amount of Virtual RAM (page file size).
Definition: Memory.cpp:323
CELERO_EXPORT int64_t GetRAMVirtualUsed()
The total virtual RAM minus the available virtual RAM.
Definition: Memory.cpp:351
CELERO_EXPORT int64_t GetRAMSystemUsedByCurrentProcess()
The sum of the physical RAM used by the current process and the virtual RAM used by the current proce...
Definition: Memory.cpp:201