aboutsummaryrefslogtreecommitdiff
path: root/src/bench
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2016-05-27 13:30:08 +0200
committerPieter Wuille <pieter.wuille@gmail.com>2016-05-28 20:04:32 +0200
commit619d5691c20bee5d08be2ce85aafa2cb570dbca4 (patch)
tree5de4406d4daaaeec6780cc97605d1293a06fd267 /src/bench
parent425278d17bd0edf8a3a7cc81e55016f7fd8e7726 (diff)
downloadbitcoin-619d5691c20bee5d08be2ce85aafa2cb570dbca4.tar.xz
Benchmark SipHash
Diffstat (limited to 'src/bench')
-rw-r--r--src/bench/crypto_hash.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/bench/crypto_hash.cpp b/src/bench/crypto_hash.cpp
index 6b753f6308..168006154f 100644
--- a/src/bench/crypto_hash.cpp
+++ b/src/bench/crypto_hash.cpp
@@ -6,6 +6,8 @@
#include "bench.h"
#include "bloom.h"
+#include "hash.h"
+#include "uint256.h"
#include "utiltime.h"
#include "crypto/ripemd160.h"
#include "crypto/sha1.h"
@@ -39,6 +41,16 @@ static void SHA256(benchmark::State& state)
CSHA256().Write(begin_ptr(in), in.size()).Finalize(hash);
}
+static void SHA256_32b(benchmark::State& state)
+{
+ std::vector<uint8_t> in(32,0);
+ while (state.KeepRunning()) {
+ for (int i = 0; i < 1000000; i++) {
+ CSHA256().Write(begin_ptr(in), in.size()).Finalize(&in[0]);
+ }
+ }
+}
+
static void SHA512(benchmark::State& state)
{
uint8_t hash[CSHA512::OUTPUT_SIZE];
@@ -47,7 +59,20 @@ static void SHA512(benchmark::State& state)
CSHA512().Write(begin_ptr(in), in.size()).Finalize(hash);
}
+static void SipHash_32b(benchmark::State& state)
+{
+ uint256 x;
+ while (state.KeepRunning()) {
+ for (int i = 0; i < 1000000; i++) {
+ *((uint64_t*)x.begin()) = SipHashUint256(0, i, x);
+ }
+ }
+}
+
BENCHMARK(RIPEMD160);
BENCHMARK(SHA1);
BENCHMARK(SHA256);
BENCHMARK(SHA512);
+
+BENCHMARK(SHA256_32b);
+BENCHMARK(SipHash_32b);