12#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__)
13#include <sys/resource.h>
16#define PSAPI_VERSION 1
31 PROCESS_MEMORY_COUNTERS pmc{};
32 if (GetProcessMemoryInfo(GetCurrentProcess(), &pmc,
sizeof(pmc)))
33 return static_cast<std::size_t>(pmc.PeakWorkingSetSize);
35#elif defined(__APPLE__) || defined(__FreeBSD__)
36 struct rusage usage{};
37 if (getrusage(RUSAGE_SELF, &usage) == 0)
41#elif defined(__linux__)
42 struct rusage usage{};
43 if (getrusage(RUSAGE_SELF, &usage) == 0)
45 return static_cast<std::size_t>(usage.ru_maxrss) * 1024ULL;
63extern "C" void logstr(
char const* msg)
69 const double mib =
static_cast<double>(bytes) / (1024.0 * 1024.0);
void logstr(char const *msg)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept