35 PROCESS_MEMORY_COUNTERS pmc{};
36 if (GetProcessMemoryInfo(GetCurrentProcess(), &pmc,
sizeof(pmc)))
37 return static_cast<std::size_t>(pmc.PeakWorkingSetSize);
39#elif defined(__APPLE__) || defined(__FreeBSD__)
40 struct rusage usage{};
41 if (getrusage(RUSAGE_SELF, &usage) == 0)
45#elif defined(__linux__)
46 struct rusage usage{};
47 if (getrusage(RUSAGE_SELF, &usage) == 0)
49 return static_cast<std::size_t>(usage.ru_maxrss) * 1024ULL;