26 bench.
batch(in.size()).unit(
"byte").
run([&] {
35 bench.
batch(in.size()).unit(
"byte").
run([&] {
36 CSHA1().
Write(in.data(), in.size()).Finalize(hash);
45 bench.
batch(in.size()).unit(
"byte").
run([&] {
56 bench.
batch(in.size()).unit(
"byte").
run([&] {
67 bench.
batch(in.size()).unit(
"byte").
run([&] {
78 bench.
batch(in.size()).unit(
"byte").
run([&] {
88 bench.
batch(in.size()).unit(
"byte").
run([&] {
96 std::vector<uint8_t> in(32,0);
97 bench.
batch(in.size()).unit(
"byte").
run([&] {
99 .
Write(in.data(), in.size())
100 .Finalize(in.data());
108 std::vector<uint8_t> in(32,0);
109 bench.
batch(in.size()).unit(
"byte").
run([&] {
111 .
Write(in.data(), in.size())
112 .Finalize(in.data());
120 std::vector<uint8_t> in(32,0);
121 bench.
batch(in.size()).unit(
"byte").
run([&] {
123 .
Write(in.data(), in.size())
124 .Finalize(in.data());
132 std::vector<uint8_t> in(32,0);
133 bench.
batch(in.size()).unit(
"byte").
run([&] {
135 .
Write(in.data(), in.size())
136 .Finalize(in.data());
144 std::vector<uint8_t> in(64 * 1024, 0);
145 bench.
batch(in.size()).unit(
"byte").
run([&] {
154 std::vector<uint8_t> in(64 * 1024, 0);
155 bench.
batch(in.size()).unit(
"byte").
run([&] {
164 std::vector<uint8_t> in(64 * 1024, 0);
165 bench.
batch(in.size()).unit(
"byte").
run([&] {
174 std::vector<uint8_t> in(64 * 1024, 0);
175 bench.
batch(in.size()).unit(
"byte").
run([&] {
185 bench.
batch(in.size()).unit(
"byte").
run([&] {
202 unsigned char key[32] = {0};
236 std::vector<unsigned char> key{rng.
randbytes(32)};
std::vector< B > randbytes(size_t len) noexcept
Generate random bytes.
CSHA256 & Write(const unsigned char *data, size_t len)
uint64_t SipHashUint256(uint64_t k0, uint64_t k1, const uint256 &val)
Optimized SipHash-2-4 implementation for uint256.
std::string SHA256AutoDetect(sha256_implementation::UseImplementation use_implementation)
Autodetect the best available SHA256 implementation.
SHA3_256 & Write(Span< const unsigned char > data)
CSHA1 & Write(const unsigned char *data, size_t len)
static void SHA256_32b_STANDARD(benchmark::Bench &bench)
static void SHA256_STANDARD(benchmark::Bench &bench)
static void MuHashPrecompute(benchmark::Bench &bench)
static void SHA1(benchmark::Bench &bench)
static void SHA256_SSE4(benchmark::Bench &bench)
static void SipHash_32b(benchmark::Bench &bench)
static constexpr size_t OUTPUT_SIZE
static void MuHashMul(benchmark::Bench &bench)
static void SHA256D64_1024_AVX2(benchmark::Bench &bench)
static void SHA256_SHANI(benchmark::Bench &bench)
SHA3_256 & Finalize(Span< unsigned char > output)
static void SHA256D64_1024_STANDARD(benchmark::Bench &bench)
static const uint64_t BUFFER_SIZE
ANKERL_NANOBENCH(NODISCARD) std Bench & name(char const *benchmarkName)
Gets the title of the benchmark.
BENCHMARK(BenchRIPEMD160, benchmark::PriorityLevel::HIGH)
constexpr unsigned char * begin()
static void SHA256D64_1024_SSE4(benchmark::Bench &bench)
static void BenchRIPEMD160(benchmark::Bench &bench)
Bench & run(char const *benchmarkName, Op &&op)
Repeatedly calls op() based on the configuration, and performs measurements.
static void SHA256_AVX2(benchmark::Bench &bench)
static const size_t OUTPUT_SIZE
static void SHA256_32b_SHANI(benchmark::Bench &bench)
static void MuHashDiv(benchmark::Bench &bench)
static void MuHash(benchmark::Bench &bench)
static void SHA3_256_1M(benchmark::Bench &bench)
static constexpr size_t OUTPUT_SIZE
CRIPEMD160 & Write(const unsigned char *data, size_t len)
static void SHA256D64_1024_SHANI(benchmark::Bench &bench)
static void SHA256_32b_AVX2(benchmark::Bench &bench)
CSHA512 & Write(const unsigned char *data, size_t len)
static const size_t OUTPUT_SIZE
A class representing MuHash sets.
Main entry point to nanobench's benchmarking facility.
Bench & batch(T b) noexcept
Sets the batch size.
static void SHA256_32b_SSE4(benchmark::Bench &bench)
static void SHA512(benchmark::Bench &bench)
void SHA256D64(unsigned char *out, const unsigned char *in, size_t blocks)
Compute multiple double-SHA256's of 64-byte blobs.
A hasher class for SHA-512.
static const size_t OUTPUT_SIZE
A hasher class for SHA-256.
A hasher class for RIPEMD-160.