Added some debug printing to the ::Load method
authorkim <kim@3cdefd35-fc62-479d-8e8d-bae585ffb9ca>
Fri, 30 Jan 2009 04:28:11 +0000 (04:28 +0000)
committerkim <kim@3cdefd35-fc62-479d-8e8d-bae585ffb9ca>
Fri, 30 Jan 2009 04:28:11 +0000 (04:28 +0000)
git-svn-id: svn+ssh://idea.nguyen.vg/svn/sxsi/trunk/XMLTree@96 3cdefd35-fc62-479d-8e8d-bae585ffb9ca

XMLTree.cpp

index b93e75a..dbc4d83 100644 (file)
@@ -120,7 +120,10 @@ XMLTree *XMLTree::Load(unsigned char *filename, int sample_rate_text)
     char buffer[1024];\r
     XMLTree *XML_Tree;\r
     int i;\r
-    \r
+    size_t s_tree = 0;\r
+    long s_text = 0;\r
+    size_t s_tags = 0;\r
+\r
     // first load the tree topology\r
     sprintf(buffer, "%s.srx", filename);\r
     fp = fopen(buffer, "r");\r
@@ -134,10 +137,18 @@ XMLTree *XMLTree::Load(unsigned char *filename, int sample_rate_text)
     XML_Tree->Par = (bp *)umalloc(sizeof(bp));\r
 \r
     loadTree(XML_Tree->Par, fp); \r
-    \r
+\r
+    s_tree += sizeof(bp);\r
+\r
     // stores the table with tag names\r
     ufread(&XML_Tree->ntagnames, sizeof(int), 1, fp);\r
+    \r
+    s_tree += sizeof(int);\r
+\r
     XML_Tree->TagName = (unsigned char **)umalloc(XML_Tree->ntagnames*sizeof(unsigned char *));\r
+    \r
+    s_tags += sizeof(unsigned char*)*XML_Tree->ntagnames;\r
+\r
 \r
     for (i=0; i<XML_Tree->ntagnames;i++) {\r
       \r
@@ -155,6 +166,7 @@ XMLTree *XMLTree::Load(unsigned char *filename, int sample_rate_text)
        int len = strlen((const char*)buffer);\r
        XML_Tree->TagName[i] = (unsigned char *)ucalloc(len,sizeof(char));\r
        strncpy((char *)XML_Tree->TagName[i], (const char *)buffer,len - 1);\r
+       s_tags+= len*sizeof(char);\r
     }\r
        \r
     // loads the flags\r
@@ -163,12 +175,20 @@ XMLTree *XMLTree::Load(unsigned char *filename, int sample_rate_text)
     ufread(&(XML_Tree->initialized), sizeof(bool), 1, fp);\r
     ufread(&(XML_Tree->finished), sizeof(bool), 1, fp);\r
     ufread(&(XML_Tree->disable_tc), sizeof(bool), 1, fp);\r
+    \r
+    s_tree+=sizeof(bool)*4;\r
 \r
     if (!(XML_Tree->indexing_empty_texts)) XML_Tree->EBVector = static_bitsequence_rrr02::load(fp);\r
-\r
+    \r
+    s_tree+= XML_Tree->EBVector->size();\r
+    \r
     // loads the tags\r
     XML_Tree->Tags = static_sequence::load(fp);\r
 \r
+    s_tree+= XML_Tree->Tags->size();\r
+\r
+    s_text = ftell(fp);\r
+\r
     // loads the texts\r
     if (!XML_Tree->disable_tc){\r
       XML_Tree->Text = TextCollection::InitTextCollection(sample_rate_text);\r
@@ -177,7 +197,12 @@ XMLTree *XMLTree::Load(unsigned char *filename, int sample_rate_text)
     else\r
       XML_Tree->Text = NULL;\r
 \r
+    s_text = ftell(fp) - s_text;\r
     fclose(fp);\r
+\r
+    std::cerr << "Tree part is " << s_tree/1024 << " Kbytes,\n"\r
+             << "Tag part is " << s_tags/1024 << " Kbytes,\n"\r
+             << "Text collection is " << s_text/1024 << " Kbytes \n";\r
     return XML_Tree;\r
  }\r
 \r
@@ -627,9 +652,10 @@ treeNode XMLTree::ParentNode(DocID d)
     if (d == NULLT)\r
       return NULLT;\r
     \r
-    int s = d;\r
-    // Kim : I added the d+1. before that, else was select1(d)\r
-    // and gave wrong results but I'm really poking a dead bear with a stick here.\r
+    int s;\r
+    // OJO : Kim : I added the d+1. before that, else branch was \r
+    // EBVector->select1(d)\r
+    // and gave wrong results (I'm really poking a bear with a stick here).\r
     if (indexing_empty_texts) s = d;\r
     else s = EBVector->select1(d+1);\r
     \r