summaryrefslogtreecommitdiffhomepage
path: root/benchmarks/cdeq_benchmark.cpp
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2021-02-11 23:13:19 +0100
committerTyge Løvset <[email protected]>2021-02-11 23:13:19 +0100
commit6427626639f37c142b225c998888dfbe9be1328c (patch)
treee90383fb10d1b282ec98e1a96286c0b675d68d63 /benchmarks/cdeq_benchmark.cpp
parente6ea4740c9fad4a9453fb62432ef238d2761271c (diff)
downloadSTC-modified-6427626639f37c142b225c998888dfbe9be1328c.tar.gz
STC-modified-6427626639f37c142b225c998888dfbe9be1328c.zip
Updated benchmarks, README, two minor API fixes.
Diffstat (limited to 'benchmarks/cdeq_benchmark.cpp')
-rw-r--r--benchmarks/cdeq_benchmark.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/benchmarks/cdeq_benchmark.cpp b/benchmarks/cdeq_benchmark.cpp
index 52e829ff..92a00940 100644
--- a/benchmarks/cdeq_benchmark.cpp
+++ b/benchmarks/cdeq_benchmark.cpp
@@ -12,7 +12,7 @@ enum {INSERT, ERASE, FIND, ITER, DESTRUCT, N_TESTS};
const char* operations[] = {"insert", "erase", "find", "iter", "destruct"};
typedef struct { time_t t1, t2; uint64_t sum; float fac; } Range;
typedef struct { const char* name; Range test[N_TESTS]; } Sample;
-enum {SAMPLES = 2, N = 100000000, S = 0x3ffc};
+enum {SAMPLES = 2, N = 100000000, S = 0x3ffc, R = 4};
uint64_t seed = 1, mask1 = 0xfffffff, mask2 = 0xffff;
static float secs(Range s) { return (float)(s.t2 - s.t1) / CLOCKS_PER_SEC; }
@@ -27,13 +27,13 @@ Sample test_std_deque() {
s.test[INSERT].t1 = clock();
container con;
stc64_srandom(seed);
- c_forrange (N/2) con.push_front(stc64_random() & mask1);
- c_forrange (N/2) { con.push_back(stc64_random() & mask1); con.pop_front(); }
- c_forrange (N/2) con.push_back(stc64_random() & mask1);
+ c_forrange (N/3) con.push_front(stc64_random() & mask1);
+ c_forrange (N/3) {con.push_back(stc64_random() & mask1); con.pop_front();}
+ c_forrange (N/3) con.push_back(stc64_random() & mask1);
s.test[INSERT].t2 = clock();
s.test[INSERT].sum = con.size();
s.test[ERASE].t1 = clock();
- c_forrange (N/2) { con.pop_front(); con.pop_back(); }
+ c_forrange (con.size()/2) { con.pop_front(); con.pop_back(); }
s.test[ERASE].t2 = clock();
s.test[ERASE].sum = con.size();
}{
@@ -49,7 +49,7 @@ Sample test_std_deque() {
s.test[FIND].sum = sum;
s.test[ITER].t1 = clock();
sum = 0;
- c_forrange (i, N) sum += con[i];
+ c_forrange (R) c_forrange (i, N) sum += con[i];
s.test[ITER].t2 = clock();
s.test[ITER].sum = sum;
s.test[DESTRUCT].t1 = clock();
@@ -72,12 +72,12 @@ Sample test_stc_deque() {
//cdeq_x_reserve(&con, N);
stc64_srandom(seed);
c_forrange (N/3) cdeq_x_push_front(&con, stc64_random() & mask1);
- c_forrange (N/3) { cdeq_x_push_back(&con, stc64_random() & mask1); cdeq_x_pop_front(&con); }
+ c_forrange (N/3) {cdeq_x_push_back(&con, stc64_random() & mask1); cdeq_x_pop_front(&con);}
c_forrange (N/3) cdeq_x_push_back(&con, stc64_random() & mask1);
s.test[INSERT].t2 = clock();
s.test[INSERT].sum = cdeq_x_size(con);
s.test[ERASE].t1 = clock();
- c_forrange (N/2) { cdeq_x_pop_front(&con); cdeq_x_pop_back(&con); }
+ c_forrange (cdeq_x_size(con)/2) { cdeq_x_pop_front(&con); cdeq_x_pop_back(&con); }
s.test[ERASE].t2 = clock();
s.test[ERASE].sum = cdeq_x_size(con);
cdeq_x_del(&con);
@@ -93,7 +93,7 @@ Sample test_stc_deque() {
s.test[FIND].sum = sum;
s.test[ITER].t1 = clock();
sum = 0;
- c_forrange (i, N) sum += *cdeq_x_at(&con, i);
+ c_forrange (R) c_forrange (i, N) sum += *cdeq_x_at(&con, i);
s.test[ITER].t2 = clock();
s.test[ITER].sum = sum;
s.test[DESTRUCT].t1 = clock();