summaryrefslogtreecommitdiffhomepage
path: root/benchmarks
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2020-12-30 14:23:23 +0100
committerTyge Løvset <[email protected]>2020-12-30 14:23:23 +0100
commit9b2e35df109264cc2a2ca5ccc34f80eb95aa5bd7 (patch)
tree8ac997cea96d4bc260ea5b8885abefab48e6a6fc /benchmarks
parent2b46410ef5bb28c4551cdd422c5e22731bd6b610 (diff)
downloadSTC-modified-9b2e35df109264cc2a2ca5ccc34f80eb95aa5bd7.tar.gz
STC-modified-9b2e35df109264cc2a2ca5ccc34f80eb95aa5bd7.zip
Some more opts.
Diffstat (limited to 'benchmarks')
-rw-r--r--benchmarks/cdeq_benchmark.cpp51
1 files changed, 35 insertions, 16 deletions
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 <stdio.h>
#include <time.h>
#include <deque>
+#include <vector>
#include <stc/cdeq.h>
#include <stc/crand.h>
@@ -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<int> 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<int> 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<int> 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()