#include <toku_portability.h> #include <windows.h> #include <stdint.h> #include <inttypes.h> #include <toku_os.h> #define DO_MEMORY_INFO 1 #if DO_MEMORY_INFO #include <psapi.h> static int get_memory_info(PROCESS_MEMORY_COUNTERS *meminfo) { int r; r = GetProcessMemoryInfo(GetCurrentProcess(), meminfo, sizeof *meminfo); if (r == 0) return GetLastError(); return 0; } #endif int toku_os_get_rss(int64_t *rss) { int r; #if DO_MEMORY_INFO PROCESS_MEMORY_COUNTERS meminfo; r = get_memory_info(&meminfo); if (r == 0) *rss = meminfo.WorkingSetSize; #else r = 0; *rss = 0; #endif return r; } int toku_os_get_max_rss(int64_t *maxrss) { int r; #if DO_MEMORY_INFO PROCESS_MEMORY_COUNTERS meminfo; r = get_memory_info(&meminfo); if (r == 0) *maxrss = meminfo.PeakWorkingSetSize; #else r = 0; *maxrss = 0; #endif return r; }