]> Creatis software - clitk.git/blobdiff - common/clitkMemoryUsage.cxx
changes in license header
[clitk.git] / common / clitkMemoryUsage.cxx
index 7e0079e80b987ee5acc2ba33eaea3df10dbafa25..12cb91c791f3dd2d3b881d3ac808b53a558168b7 100644 (file)
@@ -3,7 +3,7 @@
 
   Authors belong to: 
   - University of LYON              http://www.universite-lyon.fr/
-  - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.fr
+  - Léon Bérard cancer center       http://www.centreleonberard.fr
   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
 
   This software is distributed WITHOUT ANY WARRANTY; without even
 
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
-  ======================================================================-====*/
+  ===========================================================================**/
 
 // clitk include
 #include "clitkCommon.h"
 #include "clitkMemoryUsage.h"
 
-// itk include
-#include "itkMemoryUsageObserver.h"
-
 void clitk::PrintMemory(bool verbose, std::string s) 
 {
 #if CLITK_MEMORY_INFO == 1
@@ -32,13 +29,27 @@ 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() 
 {
-  itk::MemoryUsageObserver memUsage;
-  return memUsage.GetMemoryUsage() / 1024.;
-}
+#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;
+#else
+  return 0.0;
+#endif
+  }