From 5f57d597cd27aef55adbcb3b452973b0c6e33667 Mon Sep 17 00:00:00 2001 From: Tyge Lovset Date: Tue, 20 Dec 2022 23:31:51 +0100 Subject: Restructured folders: examples, benchmarks, tests into misc folder. --- misc/benchmarks/plotbench/cpque_benchmark.cpp | 71 +++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 misc/benchmarks/plotbench/cpque_benchmark.cpp (limited to 'misc/benchmarks/plotbench/cpque_benchmark.cpp') diff --git a/misc/benchmarks/plotbench/cpque_benchmark.cpp b/misc/benchmarks/plotbench/cpque_benchmark.cpp new file mode 100644 index 00000000..a729c09f --- /dev/null +++ b/misc/benchmarks/plotbench/cpque_benchmark.cpp @@ -0,0 +1,71 @@ +#include +#include +#define i_static +#include + +#define i_val float +#define i_cmp -c_default_cmp +#define i_tag f +#include + +#include + +static const uint32_t seed = 1234; + +void std_test() +{ + stc64_t rng; + int N = 10000000; + + std::priority_queue, std::greater> pq; + rng = stc64_new(seed); + clock_t start = clock(); + c_forrange (i, N) + pq.push((float) stc64_randf(&rng)*100000); + + printf("Built priority queue: %f secs\n", (clock() - start) / (float) CLOCKS_PER_SEC); + printf("%g ", pq.top()); + + start = clock(); + c_forrange (i, N) { + pq.pop(); + } + + printf("\npopped PQ: %f secs\n\n", (clock() - start) / (float) CLOCKS_PER_SEC); +} + + +void stc_test() +{ + stc64_t rng; + int N = 10000000, M = 10; + + c_auto (cpque_f, pq) + { + rng = stc64_new(seed); + clock_t start = clock(); + c_forrange (i, N) + cpque_f_push(&pq, (float) stc64_randf(&rng)*100000); + + printf("Built priority queue: %f secs\n", (clock() - start) / (float) CLOCKS_PER_SEC); + printf("%g ", *cpque_f_top(&pq)); + + c_forrange (i, M) { + cpque_f_pop(&pq); + } + + start = clock(); + c_forrange (i, M, N) + cpque_f_pop(&pq); + printf("\npopped PQ: %f secs\n", (clock() - start) / (float) CLOCKS_PER_SEC); + } +} + + +int main() +{ + puts("STD P.QUEUE:"); + std_test(); + puts("\nSTC P.QUEUE:"); + stc_test(); +} -- cgit v1.2.3