From 7eaf8bbcb18ab4a481905d219ab0b9e8286c75b2 Mon Sep 17 00:00:00 2001 From: kim Date: Fri, 6 Mar 2009 04:41:09 +0000 Subject: [PATCH] added macro to time functions git-svn-id: svn+ssh://idea.nguyen.vg/svn/sxsi/trunk/TextCollection@208 3cdefd35-fc62-479d-8e8d-bae585ffb9ca --- timeTextCollection.cpp | 59 +++++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/timeTextCollection.cpp b/timeTextCollection.cpp index dbe1664..91c9404 100644 --- a/timeTextCollection.cpp +++ b/timeTextCollection.cpp @@ -9,6 +9,14 @@ using std::string; #include #include +static struct timeval t1; +static struct timeval t2; + +#define STARTTIMER() (gettimeofday(&t1,NULL)) +#define STOPTIMER() (gettimeofday(&t2,NULL)) +#define GETTIME() (((t2.tv_sec - t1.tv_sec) * 1000000.0 + (t2.tv_usec - t1.tv_usec))/1000.0) + + #include "TextCollection.h" using SXSI::TextCollection; @@ -19,8 +27,6 @@ int main(int argc, char**argv) string buffer; unsigned int max_str = 0; unsigned int num_str = 0; - struct timeval t1; - struct timeval t2; double time; string words[] = { "abcd", "abc", "mirrors", "attires", "mature", @@ -32,20 +38,20 @@ int main(int argc, char**argv) TextCollection *csa = TextCollection::InitTextCollection(64); - gettimeofday(&t1,NULL); + STARTTIMER(); std::cerr << "Filling collection\n"; + // read only 100000 strings while (not(cin.eof()) && num_str < 100000 ){ getline(cin,str); // Read line by line. if (str.compare("----------") == 0){ csa->InsertText((unsigned char*) buffer.c_str()); if (num_str % 10000 == 0){ - gettimeofday(&t2,NULL); - time = ((t2.tv_sec - t1.tv_sec) * 1000000.0 - + (t2.tv_usec - t1.tv_usec))/1000.0; - std::cerr << "Added " << num_str << " strings in " - << time << " ms\n"; - gettimeofday(&t1,NULL); + STOPTIMER(); + time = GETTIME(); + std::cerr << "Added " << num_str << " strings in " + << time << " ms\n"; + STARTTIMER(); }; num_str++; @@ -58,47 +64,46 @@ int main(int argc, char**argv) buffer.append(str); }; std::cerr << "Calling MakeStatic()\n"; + csa->MakeStatic(); + std::cerr << "Statistics: " << num_str << " strings, " << max_str << " = max length\n"; int count; bool is; TextCollection::document_result res; - for (int i = 0; i < 14; i++){ - gettimeofday(&t1,NULL); + for (unsigned int i = 0; i < (sizeof(words)/sizeof(char*)) ; i++){ + + STARTTIMER(); is = csa->IsContains((unsigned char*) words[i].c_str()); - gettimeofday(&t2,NULL); - time = ((t2.tv_sec - t1.tv_sec) * 1000000.0 - + (t2.tv_usec - t1.tv_usec))/1000.0; + STOPTIMER(); + time = GETTIME(); std::cerr << is << ", " << time << ", "; - gettimeofday(&t1,NULL); + STARTTIMER(); count = csa->Count((unsigned char*) words[i].c_str()); - gettimeofday(&t2,NULL); - time = ((t2.tv_sec - t1.tv_sec) * 1000000.0 - + (t2.tv_usec - t1.tv_usec))/1000.0; + STOPTIMER(); + time = GETTIME(); std::cerr << count << ", " << time << ", "; - gettimeofday(&t1,NULL); + + STARTTIMER(); count = csa->CountContains((unsigned char*) words[i].c_str()); - gettimeofday(&t2,NULL); - time = ((t2.tv_sec - t1.tv_sec) * 1000000.0 - + (t2.tv_usec - t1.tv_usec))/1000.0; + STOPTIMER(); + time = GETTIME(); std::cerr << count << ", " << time << ", "; - gettimeofday(&t1,NULL); + STARTTIMER(); res = csa->Contains((unsigned char*) words[i].c_str()); - gettimeofday(&t2,NULL); - time = ((t2.tv_sec - t1.tv_sec) * 1000000.0 - + (t2.tv_usec - t1.tv_usec))/1000.0; + STOPTIMER(); + time = GETTIME(); std::cerr << time << "\n"; - }; -- 2.17.1