diff --git a/common/util/os.cpp b/common/util/os.cpp index 0b49c25d4b..7ca8ef1950 100644 --- a/common/util/os.cpp +++ b/common/util/os.cpp @@ -3,17 +3,29 @@ #include "common/common_types.h" #include "common/log/log.h" -#ifdef __linux__ - +#ifdef _WIN32 +// clang-format off +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN +#include +#include +// clang-format on +size_t get_peak_rss() { + HANDLE hProcess = GetCurrentProcess(); + PROCESS_MEMORY_COUNTERS pmc; + if (GetProcessMemoryInfo(hProcess, &pmc, sizeof(pmc))) { + return pmc.PeakWorkingSetSize; + } else { + return 0; + } +} +#else #include - size_t get_peak_rss() { rusage x; getrusage(RUSAGE_SELF, &x); return x.ru_maxrss * 1024; } - -#else size_t get_peak_rss() { return 0; } diff --git a/common/util/os.h b/common/util/os.h index 7f745e66b6..de779ee67e 100644 --- a/common/util/os.h +++ b/common/util/os.h @@ -3,7 +3,6 @@ #include #include -// Note: these are not implemented on windows and will return zero. size_t get_peak_rss(); void setup_cpu_info();