From 7943f6773864dfe1d63e4188a23a41f3f23d2b4f Mon Sep 17 00:00:00 2001 From: Tyge Løvset <60263450+tylo-work@users.noreply.github.com> Date: Tue, 10 Mar 2020 22:32:24 +0100 Subject: Benchmark and speedup Added benchmark.cpp and did a speedup trick in cmap --- benchmark.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 benchmark.cpp (limited to 'benchmark.cpp') diff --git a/benchmark.cpp b/benchmark.cpp new file mode 100644 index 00000000..ca65ce5a --- /dev/null +++ b/benchmark.cpp @@ -0,0 +1,51 @@ +#include +#include +#include +#include "cmap.h" +#include "cvector.h" +#include "cstring.h" +#include "hash_set.hpp" +#include + + +declare_CMap(ii, int, int); +declare_CStringVector(s); + +int main() +{ + CMap_ii map = cmap_initializer; + uint64_t checksum = 0; + clock_t before, difference; + size_t fib1, fib2, fibx; + + const size_t N = 10000000; + + printf("Starting\n"); + //cmap_ii_reserve(&map, N * 1.7); + before = clock(); + fib1 = 0, fib2 = 1; + for (size_t i = 0; i < N; ++i) { + checksum += ++cmap_ii_put(&map, FIBONACCI_NEXT, i)->value; + } + difference = clock() - before; + printf("%llu Check: %f\n", checksum, 1.0 * difference / CLOCKS_PER_SEC); + cmap_ii_destroy(&map); + + std::unordered_map map2; + before = clock(); + fib1 = 0, fib2 = 1; checksum = 0; + for (size_t i = 0; i < N; ++i) + checksum += ++(map2[FIBONACCI_NEXT] = i); + difference = clock() - before; + printf("%llu Check: %f\n", checksum, 1.0 * difference / CLOCKS_PER_SEC); + map2.clear(); + + emhash7::HashMap map3; + //map3.reserve(N); + before = clock(); + fib1 = 0, fib2 = 1; checksum = 0; + for (size_t i = 0; i < N; ++i) + checksum += ++(*map3.insert(FIBONACCI_NEXT, i).first).second; + difference = clock() - before; + printf("%llu Check: %f\n", checksum, 1.0 * difference / CLOCKS_PER_SEC); +} \ No newline at end of file -- cgit v1.2.3