Test case for memory consumption with the TextCollection.
authorkim <kim@3cdefd35-fc62-479d-8e8d-bae585ffb9ca>
Wed, 7 Jan 2009 03:53:22 +0000 (03:53 +0000)
committerkim <kim@3cdefd35-fc62-479d-8e8d-bae585ffb9ca>
Wed, 7 Jan 2009 03:53:22 +0000 (03:53 +0000)
git-svn-id: svn+ssh://idea.nguyen.vg/svn/sxsi/trunk/TextCollection@28 3cdefd35-fc62-479d-8e8d-bae585ffb9ca

testTextCollection.cpp

index dd37ff1..3add025 100644 (file)
@@ -1,9 +1,12 @@
 // Test driver for text collection
 #include <iostream>
 #include <cstdlib>
+#include <string>
 #include "HeapProfiler.h"
 using std::cout;
 using std::endl;
+using std::cin;
+using std::string;
 
 #include "TextCollection.h"
 using SXSI::TextCollection;
@@ -31,12 +34,35 @@ void printFullResult(TextCollection::full_result fr)
 int main()
 {
   std::string kbd;
-  uchar * str = (uchar*) "";
+  string str;
+  uchar* data;
+  int i = 0 ,j = 0;
+  int heap_base = HeapProfiler::GetHeapConsumption ();
+  std::cerr << "Initial heap usage : " << heap_base << "\n";
+  TextCollection *csa = TextCollection::InitTextCollection(5);
+  heap_base = HeapProfiler::GetHeapConsumption ();
+  std::cerr << "Heap usage after InitTextCollection : " << heap_base << "\n";
 
-  TextCollection *csa = TextCollection::InitTextCollection(64);
-  for(int i = 0; i<1000000; i++){
-    csa->InsertText(str);    
+
+  while (not(cin.eof())){
+    getline(cin,str);
+    data = (uchar *) str.c_str();
+    csa->InsertText(data);    
+    i++;
+    j+= str.size();
+    str.clear();
+    if ( i % 1000 == 0)  {
+      std::cerr << "Inserted : " << i << " strings\n";
+      std::cerr << "Number of bytes inserted : " << j << "b \n";
+      std::cerr << "Heap usage used for strings: " << HeapProfiler::GetHeapConsumption() - heap_base
+               << "bytes\n";
+      std::cerr << "Ratio is : " << (float) (HeapProfiler::GetHeapConsumption() - heap_base) / ((float) j) <<"\n";
+      
+    };
+    
   };
+
+  std::cerr << "Creating new text collection with " << i << " strings (total " << j/1024 << " kb)\n"; 
   std::cerr << "Before MakeStatic() [press enter]\n";
   std::cin >> kbd;
   std::cerr << "heap usage: " << HeapProfiler::GetHeapConsumption()/(1024*1024) << " Mbytes" << std::endl;