]> Creatis software - clitk.git/blobdiff - common/clitkMemoryUsage.cxx
Remove statgrab stuff, prefer portable ITK functions
[clitk.git] / common / clitkMemoryUsage.cxx
index 8ceff61a1e4c90cc55363de927b375e143ddb087..7e0079e80b987ee5acc2ba33eaea3df10dbafa25 100644 (file)
@@ -20,6 +20,9 @@
 #include "clitkCommon.h"
 #include "clitkMemoryUsage.h"
 
+// itk include
+#include "itkMemoryUsageObserver.h"
+
 void clitk::PrintMemory(bool verbose, std::string s) 
 {
 #if CLITK_MEMORY_INFO == 1
@@ -29,25 +32,13 @@ void clitk::PrintMemory(bool verbose, std::string s)
     if (s != "") std::cout << "==> " << s << ": ";
     std::cout << mem << "MB (" << mem-previous << "MB)" << std::endl;
     previous = mem;
-    //DD(stat[i].proc_resident/1000/1000);
-    //DD(stat[i].pid);
   }
 #endif
-  }
+}
 
 double clitk::GetMemoryUsageInMb() 
 {
-#if CLITK_MEMORY_INFO == 1
-  //sleep(1); // wait to refresh memory ? need to let the system refresh the mem
-  int * entries = new int;
-  sg_process_stats * stat = new sg_process_stats;
-  int i=0; 
-  stat = sg_get_process_stats(entries);
-  // Search the current pid in the list of processes
-  while (stat[i].pid != getpid()) i++;
-  // Display total memory size 
-  double mem = stat[i].proc_resident/1024/1024; // in Mb
-  return mem;
-#endif
-  }
+  itk::MemoryUsageObserver memUsage;
+  return memUsage.GetMemoryUsage() / 1024.;
+}