Changeset View
Changeset View
Standalone View
Standalone View
src/bench/crypto_hash.cpp
Show All 17 Lines | |||||
#include <string> | #include <string> | ||||
/* Number of bytes to hash per iteration */ | /* Number of bytes to hash per iteration */ | ||||
static const uint64_t BUFFER_SIZE = 1000 * 1000; | static const uint64_t BUFFER_SIZE = 1000 * 1000; | ||||
static void RIPEMD160(benchmark::State &state) { | static void RIPEMD160(benchmark::State &state) { | ||||
uint8_t hash[CRIPEMD160::OUTPUT_SIZE]; | uint8_t hash[CRIPEMD160::OUTPUT_SIZE]; | ||||
std::vector<uint8_t> in(BUFFER_SIZE, 0); | std::vector<uint8_t> in(BUFFER_SIZE, 0); | ||||
while (state.KeepRunning()) | while (state.KeepRunning()) { | ||||
CRIPEMD160().Write(in.data(), in.size()).Finalize(hash); | CRIPEMD160().Write(in.data(), in.size()).Finalize(hash); | ||||
} | } | ||||
} | |||||
static void SHA1(benchmark::State &state) { | static void SHA1(benchmark::State &state) { | ||||
uint8_t hash[CSHA1::OUTPUT_SIZE]; | uint8_t hash[CSHA1::OUTPUT_SIZE]; | ||||
std::vector<uint8_t> in(BUFFER_SIZE, 0); | std::vector<uint8_t> in(BUFFER_SIZE, 0); | ||||
while (state.KeepRunning()) | while (state.KeepRunning()) { | ||||
CSHA1().Write(in.data(), in.size()).Finalize(hash); | CSHA1().Write(in.data(), in.size()).Finalize(hash); | ||||
} | } | ||||
} | |||||
static void SHA256(benchmark::State &state) { | static void SHA256(benchmark::State &state) { | ||||
uint8_t hash[CSHA256::OUTPUT_SIZE]; | uint8_t hash[CSHA256::OUTPUT_SIZE]; | ||||
std::vector<uint8_t> in(BUFFER_SIZE, 0); | std::vector<uint8_t> in(BUFFER_SIZE, 0); | ||||
while (state.KeepRunning()) | while (state.KeepRunning()) { | ||||
CSHA256().Write(in.data(), in.size()).Finalize(hash); | CSHA256().Write(in.data(), in.size()).Finalize(hash); | ||||
} | } | ||||
} | |||||
static void SHA256_32b(benchmark::State &state) { | static void SHA256_32b(benchmark::State &state) { | ||||
std::vector<uint8_t> in(32, 0); | std::vector<uint8_t> in(32, 0); | ||||
while (state.KeepRunning()) { | while (state.KeepRunning()) { | ||||
CSHA256().Write(in.data(), in.size()).Finalize(in.data()); | CSHA256().Write(in.data(), in.size()).Finalize(in.data()); | ||||
} | } | ||||
} | } | ||||
static void SHA256D64_1024(benchmark::State &state) { | static void SHA256D64_1024(benchmark::State &state) { | ||||
std::vector<uint8_t> in(64 * 1024, 0); | std::vector<uint8_t> in(64 * 1024, 0); | ||||
while (state.KeepRunning()) { | while (state.KeepRunning()) { | ||||
SHA256D64(in.data(), in.data(), 1024); | SHA256D64(in.data(), in.data(), 1024); | ||||
} | } | ||||
} | } | ||||
static void SHA512(benchmark::State &state) { | static void SHA512(benchmark::State &state) { | ||||
uint8_t hash[CSHA512::OUTPUT_SIZE]; | uint8_t hash[CSHA512::OUTPUT_SIZE]; | ||||
std::vector<uint8_t> in(BUFFER_SIZE, 0); | std::vector<uint8_t> in(BUFFER_SIZE, 0); | ||||
while (state.KeepRunning()) | while (state.KeepRunning()) { | ||||
CSHA512().Write(in.data(), in.size()).Finalize(hash); | CSHA512().Write(in.data(), in.size()).Finalize(hash); | ||||
} | } | ||||
} | |||||
static void SipHash_32b(benchmark::State &state) { | static void SipHash_32b(benchmark::State &state) { | ||||
uint256 x; | uint256 x; | ||||
uint64_t k1 = 0; | uint64_t k1 = 0; | ||||
while (state.KeepRunning()) { | while (state.KeepRunning()) { | ||||
uint64_t hash64 = SipHashUint256(0, ++k1, x); | uint64_t hash64 = SipHashUint256(0, ++k1, x); | ||||
std::memcpy(x.begin(), &hash64, sizeof(hash64)); | std::memcpy(x.begin(), &hash64, sizeof(hash64)); | ||||
} | } | ||||
Show All 26 Lines |