forked from boostorg/regex
regex_timer.cpp:
- Head off some infinite looping on some platforms [SVN r12550]
This commit is contained in:
@ -188,6 +188,7 @@ int main(int argc, char**argv)
|
||||
regex_search(s2, sm, ex);
|
||||
|
||||
// measure time interval for reg_expression<char>
|
||||
int trials = 30;
|
||||
do{
|
||||
iters *= (tim > 0.001) ? (1.1/tim) : 100;
|
||||
t.restart();
|
||||
@ -196,7 +197,7 @@ int main(int argc, char**argv)
|
||||
result = regex_search(s2, sm, ex);
|
||||
}
|
||||
tim = t.elapsed();
|
||||
}while((tim < t.elapsed_min() * 1000) || (tim < 1));
|
||||
}while(((tim < t.elapsed_min() * 1000) || (tim < 1)) && trials--);
|
||||
|
||||
cout << "regex time: " << (tim * 1000000 / iters) << "us" << endl;
|
||||
if(result)
|
||||
@ -258,6 +259,7 @@ int main(int argc, char**argv)
|
||||
// measure time interval for reg_expression<char> using a deque
|
||||
iters = 10;
|
||||
tim = 1.1;
|
||||
trials = 30;
|
||||
// cache load:
|
||||
regex_search(ds.begin(), ds.end(), dm, ex);
|
||||
do{
|
||||
@ -268,7 +270,7 @@ int main(int argc, char**argv)
|
||||
result = regex_search(ds.begin(), ds.end(), dm, ex);
|
||||
}
|
||||
tim = t.elapsed();
|
||||
}while((tim < t.elapsed_min() * 1000) || (tim < 1));
|
||||
}while(((tim < t.elapsed_min() * 1000) || (tim < 1)) && trials--);
|
||||
cout << "regex time (search over std::deque<char>): " << (tim * 1000000 / iters) << "us" << endl;
|
||||
|
||||
if(result)
|
||||
@ -295,6 +297,7 @@ int main(int argc, char**argv)
|
||||
// measure time interval for POSIX matcher:
|
||||
iters = 10;
|
||||
tim = 1.1;
|
||||
trials = 30;
|
||||
// cache load:
|
||||
regexec(&r, s2.c_str(), nsubs, matches.get(), 0);
|
||||
do{
|
||||
@ -302,10 +305,11 @@ int main(int argc, char**argv)
|
||||
t.restart();
|
||||
for(i = 0; i < iters; ++i)
|
||||
{
|
||||
std::cerr << "Iteration #" << i << "/" << iters << std::endl;
|
||||
result = regexec(&r, s2.c_str(), nsubs, matches.get(), 0);
|
||||
}
|
||||
tim = t.elapsed();
|
||||
}while((tim < t.elapsed_min() * 1000) || (tim < 1));
|
||||
}while(((tim < t.elapsed_min() * 1000) || (tim < 1)) && trials--);
|
||||
cout << "POSIX regexec time: " << (tim * 1000000 / iters) << "us" << endl;
|
||||
|
||||
if(result == 0)
|
||||
|
Reference in New Issue
Block a user