summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-08-05 06:24:58 +0000
committerDavid Robillard <d@drobilla.net>2007-08-05 06:24:58 +0000
commitf4fd64545cc0ddd3ef81f9b79e3568090860590a (patch)
tree5fa34b7f7810c799623ca222a388a9b58fd44ac5 /tests
parent9f14a7d7cd2c8eb29af3e6cd4b6e06b71ca8c28a (diff)
downloadraul-f4fd64545cc0ddd3ef81f9b79e3568090860590a.tar.gz
raul-f4fd64545cc0ddd3ef81f9b79e3568090860590a.tar.bz2
raul-f4fd64545cc0ddd3ef81f9b79e3568090860590a.zip
Okay, so it's faster with expensive to compare keys (strings).
Justification FTW. git-svn-id: http://svn.drobilla.net/lad/raul@679 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'tests')
-rw-r--r--tests/table_test.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/tests/table_test.cpp b/tests/table_test.cpp
index 3c1462d..c517db1 100644
--- a/tests/table_test.cpp
+++ b/tests/table_test.cpp
@@ -202,6 +202,13 @@ main(int argc, char** argv)
return 0;
}
+string
+random_string()
+{
+ string ret(40, 'A' + (rand() % 26));
+ return ret;
+}
+
void
benchmark(size_t n)
@@ -212,9 +219,9 @@ benchmark(size_t n)
srand(time(NULL));
- vector<int> values(n);
+ vector<string> values(n);
for (size_t i=0; i < n; ++i)
- values.push_back(rand() % n*100);
+ values.push_back(random_string());
timeval t1;
t1.tv_sec=0;
@@ -227,12 +234,12 @@ benchmark(size_t n)
/** std::map **/
- std::map<int,int> m;
+ std::map<string,int> m;
gettimeofday(&t1, NULL);
for (size_t i=0; i < n; ++i)
- m.insert(make_pair(values[i], values[i]));
+ m.insert(make_pair(values[i], i));
gettimeofday(&t2, NULL);
@@ -283,12 +290,12 @@ benchmark(size_t n)
/** Raul::Table **/
- Raul::Table<int,int> t(n);
+ Raul::Table<string,int> t(n);
gettimeofday(&t1, NULL);
for (size_t i=0; i < n; ++i)
- t.insert(make_pair(values[i], values[i]));
+ t.insert(make_pair(values[i], i));
gettimeofday(&t2, NULL);