X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=myTimeXMLTree.cpp;h=25bc5aa2d0844723d1faf41793835028d49fb8b7;hb=f0557f21878be17ddc75b1bc8f4f86da68c8e604;hp=e7b97b2e053f6a7e0951da81d40f405c5ea9048a;hpb=0611dd6406735f44d7136850eb068648817a9fb9;p=SXSI%2Fxpathcomp.git diff --git a/myTimeXMLTree.cpp b/myTimeXMLTree.cpp index e7b97b2..25bc5aa 100644 --- a/myTimeXMLTree.cpp +++ b/myTimeXMLTree.cpp @@ -42,7 +42,7 @@ void printStats(double time, string fname, uint queries) { #define STATS1(fname,vect) {\ start_clock(); \ uint q = 0; \ - while(q<(vect).size()) \ + while(qfname((vect)[q]); \ q++; \ @@ -54,7 +54,7 @@ void printStats(double time, string fname, uint queries) { #define STATS1p(fname,vect) {\ start_clock(); \ uint q = 0; \ - while(q<(vect).size()) \ + while(qfname((vect)[q]).min; \ q++; \ @@ -66,17 +66,16 @@ void printStats(double time, string fname, uint queries) { #define STATS2(fname,vect) {\ start_clock(); \ uint q = 0; \ - while(q<(vect).size()) \ + while(qfname((vect)[q].first,(vect)[q].second); \ q++; \ } \ double t = 1000.0*stop_clock(); \ printStats(t,#fname,(vect).size()); \ - cout.flush();\ } -TagType target_tag = -1; + TagType target_tag = -1; vector treenodeQueries; vector > treenodetagQueries; vector docidQueries; @@ -93,7 +92,7 @@ void runQueries(XMLTree * tree) { STATS1(FirstChild,treenodeQueries); STATS1(NextSibling,treenodeQueries); STATS1(ParentNode,docidQueries); - STATS1(PrevNode,docidQueries); + STATS1(PrevNode,treenodeQueries); STATS2(TaggedDesc,treenodetagQueries); STATS2(TaggedFoll,treenodetagQueries); } @@ -162,14 +161,14 @@ unsigned int traversal(XMLTree *tree,treeNode node) { tag = tree->Tag(node); if (tag == target_tag) ret++; - treeNode t1 = tree->FirstChild(node); + treeNode t1 = tree->FirstChild(node); q.push(tree->FirstChild(node)); - treeNode t2 = tree->NextSibling(node); + treeNode t2 = tree->NextSibling(node); q.push(tree->NextSibling(node)); - if(t1!=NULLT) - traversalQueries.push_back(t1); - if(t2!=NULLT) - traversalQueries.push_back(t2); + if(t1!=NULLT) + traversalQueries.push_back(t1); + if(t2!=NULLT) + traversalQueries.push_back(t2); } } return ret; @@ -212,10 +211,10 @@ unsigned int jump_traversal(XMLTree* tree, treeNode node,treeNode root) { ret++; pair p1(tree->TaggedDesc(node,target_tag),node); pair p2(tree->TaggedFollBelow(node,target_tag,root),root); - if(p1.first!=NULLT) - jumpQueries.push_back(p1); - if(p2.first!=NULLT) - jumpQueries.push_back(p2); + if(p1.first!=NULLT) + jumpQueries.push_back(p1); + if(p2.first!=NULLT) + jumpQueries.push_back(p2); q.push(p1); q.push(p2); } @@ -326,11 +325,9 @@ int main(int argc, char ** argv) { count1 = traversal(tree,tree->Root()); count2 = jump_traversal(tree,tree->Root(),tree->Root()); - cout << endl << endl; cout << "Full traversal found " << count1 << " '" << tagname << "' nodes, " << cFullTraversal << " function calls." << endl; traversal_time(tree); - cout << endl << endl; cout << "Jump traversal found " << count2 << " '" << tagname << "' nodes, " << cJumpTraversal << " function calls." << endl; jump_time(tree);