Skip to content

Commit 61b8684

Browse files
committed
Merge #8111: Benchmark SipHash
619d569 Benchmark SipHash (Pieter Wuille)
2 parents 6ff2c8d + 619d569 commit 61b8684

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

src/bench/crypto_hash.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
#include "bench.h"
88
#include "bloom.h"
9+
#include "hash.h"
10+
#include "uint256.h"
911
#include "utiltime.h"
1012
#include "crypto/ripemd160.h"
1113
#include "crypto/sha1.h"
@@ -39,6 +41,16 @@ static void SHA256(benchmark::State& state)
3941
CSHA256().Write(begin_ptr(in), in.size()).Finalize(hash);
4042
}
4143

44+
static void SHA256_32b(benchmark::State& state)
45+
{
46+
std::vector<uint8_t> in(32,0);
47+
while (state.KeepRunning()) {
48+
for (int i = 0; i < 1000000; i++) {
49+
CSHA256().Write(begin_ptr(in), in.size()).Finalize(&in[0]);
50+
}
51+
}
52+
}
53+
4254
static void SHA512(benchmark::State& state)
4355
{
4456
uint8_t hash[CSHA512::OUTPUT_SIZE];
@@ -47,7 +59,20 @@ static void SHA512(benchmark::State& state)
4759
CSHA512().Write(begin_ptr(in), in.size()).Finalize(hash);
4860
}
4961

62+
static void SipHash_32b(benchmark::State& state)
63+
{
64+
uint256 x;
65+
while (state.KeepRunning()) {
66+
for (int i = 0; i < 1000000; i++) {
67+
*((uint64_t*)x.begin()) = SipHashUint256(0, i, x);
68+
}
69+
}
70+
}
71+
5072
BENCHMARK(RIPEMD160);
5173
BENCHMARK(SHA1);
5274
BENCHMARK(SHA256);
5375
BENCHMARK(SHA512);
76+
77+
BENCHMARK(SHA256_32b);
78+
BENCHMARK(SipHash_32b);

0 commit comments

Comments
 (0)