8 rsstools::~rsstools() {
21 PROCESS_MEMORY_COUNTERS info;
22 GetProcessMemoryInfo( GetCurrentProcess( ), &info,
sizeof(info) );
23 return (
size_t)info.PeakWorkingSetSize;
25 #elif (defined(_AIX) || defined(__TOS__AIX__)) || (defined(__sun__) || defined(__sun) || defined(sun) && (defined(__SVR4) || defined(__svr4__)))
29 if ( (fd = open(
"/proc/self/psinfo", O_RDONLY )) == -1 )
31 if ( read( fd, &psinfo,
sizeof(psinfo) ) !=
sizeof(psinfo) )
37 return (
size_t)(psinfo.pr_rssize * 1024L);
39 #elif defined(__unix__) || defined(__unix) || defined(unix) || (defined(__APPLE__) && defined(__MACH__))
42 getrusage( RUSAGE_SELF, &rusage );
43 #if defined(__APPLE__) && defined(__MACH__)
44 return (
size_t)rusage.ru_maxrss;
46 return (
size_t)(rusage.ru_maxrss * 1024L);
63 PROCESS_MEMORY_COUNTERS info;
64 GetProcessMemoryInfo( GetCurrentProcess( ), &info,
sizeof(info) );
65 return (
size_t)info.WorkingSetSize;
67 #elif defined(__APPLE__) && defined(__MACH__)
69 struct mach_task_basic_info info;
70 mach_msg_type_number_t infoCount = MACH_TASK_BASIC_INFO_COUNT;
71 if ( task_info( mach_task_self( ), MACH_TASK_BASIC_INFO,
72 (task_info_t)&info, &infoCount ) != KERN_SUCCESS )
74 return (
size_t)info.resident_size;
76 #elif defined(__linux__) || defined(__linux) || defined(linux) || defined(__gnu_linux__)
80 if ( (fp = fopen(
"/proc/self/statm",
"r" )) == NULL )
82 if ( fscanf( fp,
"%*s%ld", &rss ) != 1 )
88 return (
size_t)rss * (size_t)sysconf( _SC_PAGESIZE);