From 63d4377a701b4f3280ea66646e29c33ce68aef08 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 5 Aug 2007 07:02:39 +0000 Subject: Yet more benchmarking. git-svn-id: http://svn.drobilla.net/lad/raul@680 a436a847-0d15-0410-975c-d299462d15a1 --- tests/table_test.cpp | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/tests/table_test.cpp b/tests/table_test.cpp index c517db1..d411d12 100644 --- a/tests/table_test.cpp +++ b/tests/table_test.cpp @@ -2,11 +2,16 @@ #include #include #include +#include +#include #include #include #include #include +#define BOOST_MULTI_INDEX_DISABLE_SERIALIZATION 1 +#include + using namespace Raul; using namespace std; @@ -205,7 +210,7 @@ main(int argc, char** argv) string random_string() { - string ret(40, 'A' + (rand() % 26)); + string ret(60, 'A' + (rand() % 26)); return ret; } @@ -259,6 +264,33 @@ benchmark(size_t n) cout << "std::map time to lookup " << n << " values: \t" << delta_t << endl; + /** std::set **/ + + std::set s; + + gettimeofday(&t1, NULL); + + for (size_t i=0; i < n; ++i) + s.insert(values[i]); + + gettimeofday(&t2, NULL); + + delta_t = (t2.tv_sec - t1.tv_sec) + (t2.tv_usec - t1.tv_usec) * 0.000001f; + + cout << "std::set time to insert " << n << " values: \t" << delta_t << endl; + + gettimeofday(&t1, NULL); + + for (size_t i=0; i < n; ++i) + useless_accumulator += (int)(*s.find(values[i]))[0]; + + gettimeofday(&t2, NULL); + + delta_t = (t2.tv_sec - t1.tv_sec) + (t2.tv_usec - t1.tv_usec) * 0.000001f; + + cout << "std::set time to lookup " << n << " values: \t" << delta_t << endl; + + /** sorted std::vector **/ /*std::vector v; @@ -313,6 +345,34 @@ benchmark(size_t n) delta_t = (t2.tv_sec - t1.tv_sec) + (t2.tv_usec - t1.tv_usec) * 0.000001f; cout << "Raul::Table time to lookup " << n << " values: \t" << delta_t << endl; + + + /** boost::hash && std::unordered_map **/ + + tr1::unordered_map > um; + + gettimeofday(&t1, NULL); + + um.rehash(n); + + for (size_t i=0; i < n; ++i) + um.insert(make_pair(values[i], i)); + + gettimeofday(&t2, NULL); + + delta_t = (t2.tv_sec - t1.tv_sec) + (t2.tv_usec - t1.tv_usec) * 0.000001f; + + cout << "tr1::unordered_map + boost::hash time to insert " << n << " values: \t" << delta_t << endl; + + gettimeofday(&t1, NULL); + + for (size_t i=0; i < n; ++i) + useless_accumulator += um.find(values[i])->second; + + gettimeofday(&t2, NULL); + + delta_t = (t2.tv_sec - t1.tv_sec) + (t2.tv_usec - t1.tv_usec) * 0.000001f; + cout << "tr1::unordered_map + boost::hash time to lookup " << n << " values: \t" << delta_t << endl; } -- cgit v1.2.1