From: srit <srit>
Date: Mon, 7 Mar 2011 12:45:33 +0000 (+0000)
Subject: Undo previous commit: itk MemoryUsageObserver slows down vv
X-Git-Tag: v1.2.0~194
X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=158aeb1dd6eb1209bc4f837f09ff8a1fc50f16f3;p=clitk.git

Undo previous commit: itk MemoryUsageObserver slows down vv
---

diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt
index c809743..2060486 100644
--- a/common/CMakeLists.txt
+++ b/common/CMakeLists.txt
@@ -37,6 +37,16 @@ SET(clitkCommon_SRC
 ### Declare clitkCommon library
 ADD_LIBRARY(clitkCommon STATIC ${clitkCommon_SRC})
 
+### if LIBSTATGRAB is installed, add clitkMemoryUsage.cxx in the library
+IF(CLITK_MEMORY_INFO)
+  FIND_PROGRAM(LIBSTATGRAB NAMES statgrab PATHS)
+  IF (${LIBSTATGRAB} MATCHES "LIBSTATGRAB-NOTFOUND")
+    MESSAGE( FATAL_ERROR "libstatgrab NOT FOUND -> please install http://www.i-scream.org/libstatgrab/")
+  ELSE (${LIBSTATGRAB} MATCHES "LIBSTATGRAB-NOTFOUND")
+    TARGET_LINK_LIBRARIES(clitkCommon statgrab)
+  ENDIF (${LIBSTATGRAB} MATCHES "LIBSTATGRAB-NOTFOUND")  
+ENDIF(CLITK_MEMORY_INFO)
+
 TARGET_LINK_LIBRARIES(clitkCommon vtkCommon vtkImaging vtkHybrid ITKBasicFilters)
 
 ADD_LIBRARY(clitkDicomRTStruct STATIC
diff --git a/common/clitkMemoryUsage.cxx b/common/clitkMemoryUsage.cxx
index 7e0079e..8ceff61 100644
--- a/common/clitkMemoryUsage.cxx
+++ b/common/clitkMemoryUsage.cxx
@@ -20,9 +20,6 @@
 #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,25 @@ 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;
+#endif
+  }
 
diff --git a/common/clitkMemoryUsage.h b/common/clitkMemoryUsage.h
index a0dc865..38a982e 100644
--- a/common/clitkMemoryUsage.h
+++ b/common/clitkMemoryUsage.h
@@ -22,6 +22,11 @@
 // clitk include
 #include "clitkConfiguration.h"
 
+// statgrab include
+#if CLITK_MEMORY_INFO == 1
+#include <statgrab.h>
+#endif
+
 //--------------------------------------------------------------------
 namespace clitk {