From 9b2e35df109264cc2a2ca5ccc34f80eb95aa5bd7 Mon Sep 17 00:00:00 2001 From: Tyge Løvset Date: Wed, 30 Dec 2020 14:23:23 +0100 Subject: Some more opts. --- benchmarks/cdeq_benchmark.cpp | 51 +++++++++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 16 deletions(-) (limited to 'benchmarks/cdeq_benchmark.cpp') diff --git a/benchmarks/cdeq_benchmark.cpp b/benchmarks/cdeq_benchmark.cpp index 6680ec2c..f44a40a6 100644 --- a/benchmarks/cdeq_benchmark.cpp +++ b/benchmarks/cdeq_benchmark.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include @@ -27,16 +28,25 @@ void test1() { sum += deq[i]; t3 = clock(); printf("std access : %5.2f sec, sum=%zu\n", (float)(t3 - t2) / CLOCKS_PER_SEC, sum); - } - std::deque deq; - for (size_t i = 1; i < N/10; i++) { - if (i & 1) deq.push_front(stc64_rand(&rng)); - else deq.push_back(stc64_rand(&rng)); - } - t2 = clock(); - printf("std pushf/pushb : %5.2f sec\n", (float)(t2 - t3) / CLOCKS_PER_SEC); + }{ + std::deque deq; + for (size_t i = 1; i < N/10; i++) { + if (i & 1) deq.push_front(stc64_rand(&rng)); + else deq.push_back(stc64_rand(&rng)); + } + t2 = clock(); + printf("std pushf/pushb : %5.2f sec\n", (float)(t2 - t3) / CLOCKS_PER_SEC); + }{ + std::deque deq; + for (size_t i = 1; i < N/2; i++) { + deq.push_back(stc64_rand(&rng)); + } + t3 = clock(); + printf("std pushb : %5.2f sec\n", (float)(t3 - t2) / CLOCKS_PER_SEC); + } } + void test2() { clock_t t1 = clock(), t2, t3; stc64_t rng = stc64_init(0); @@ -57,15 +67,24 @@ void test2() { t3 = clock(); printf("stc access : %5.2f sec, sum=%zu\n", (float)(t3 - t2) / CLOCKS_PER_SEC, sum); cdeq_i_del(&deq); + }{ + cdeq_i deq = cdeq_inits; + for (size_t i = 1; i < N/10; i++) { + if (i & 1) cdeq_i_push_front(&deq, stc64_rand(&rng)); + else cdeq_i_push_back(&deq, stc64_rand(&rng)); + } + t2 = clock(); + printf("stc pushf/pushb : %5.2f sec\n", (float)(t2 - t3) / CLOCKS_PER_SEC); + cdeq_i_del(&deq); + }{ + cdeq_i deq = cdeq_inits; + for (size_t i = 1; i < N/2; i++) { + cdeq_i_push_back(&deq, stc64_rand(&rng)); + } + t3 = clock(); + printf("stc pushb : %5.2f sec\n", (float)(t3 - t2) / CLOCKS_PER_SEC); + cdeq_i_del(&deq); } - cdeq_i deq = cdeq_inits; - for (size_t i = 1; i < N/10; i++) { - if (i & 1) cdeq_i_push_front(&deq, stc64_rand(&rng)); - else cdeq_i_push_back(&deq, stc64_rand(&rng)); - } - t2 = clock(); - printf("stc pushf/pushb : %5.2f sec\n", (float)(t2 - t3) / CLOCKS_PER_SEC); - cdeq_i_del(&deq); } int main() -- cgit v1.2.3