FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
chips/src/bench/crypto_hash.cpp at master · https-github-com-goodman-ops/chips · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
https-github-com-goodman-ops
/
chips
Public
forked from
chips-blockchain/chips
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
chips
/
src
/
bench
/
crypto_hash.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
98 lines (85 loc) · 2.44 KB
Breadcrumbs
chips
/
src
/
bench
/
crypto_hash.cpp
Copy path
File metadata and controls
98 lines (85 loc) · 2.44 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
//
Copyright (c) 2016-2017 The Bitcoin Core developers
//
Distributed under the MIT software license, see the accompanying
//
file COPYING or http://www.opensource.org/licenses/mit-license.php.
#
include
<
iostream
>
#
include
<
bench/bench.h
>
#
include
<
bloom.h
>
#
include
<
hash.h
>
#
include
<
random.h
>
#
include
<
uint256.h
>
#
include
<
utiltime.h
>
#
include
<
crypto/ripemd160.h
>
#
include
<
crypto/sha1.h
>
#
include
<
crypto/sha256.h
>
#
include
<
crypto/sha512.h
>
/*
Number of bytes to hash per iteration
*/
static
const
uint64_t
BUFFER_SIZE
=
1000
*
1000
;
static
void
RIPEMD160
(benchmark::State& state)
{
uint8_t
hash[
CRIPEMD160
::
OUTPUT_SIZE
];
std::vector<
uint8_t
>
in
(
BUFFER_SIZE
,
0
);
while
(state.
KeepRunning
())
CRIPEMD160
().
Write
(in.
data
(), in.
size
()).
Finalize
(hash);
}
static
void
SHA1
(benchmark::State& state)
{
uint8_t
hash[
CSHA1
::
OUTPUT_SIZE
];
std::vector<
uint8_t
>
in
(
BUFFER_SIZE
,
0
);
while
(state.
KeepRunning
())
CSHA1
().
Write
(in.
data
(), in.
size
()).
Finalize
(hash);
}
static
void
SHA256
(benchmark::State& state)
{
uint8_t
hash[
CSHA256
::
OUTPUT_SIZE
];
std::vector<
uint8_t
>
in
(
BUFFER_SIZE
,
0
);
while
(state.
KeepRunning
())
CSHA256
().
Write
(in.
data
(), in.
size
()).
Finalize
(hash);
}
static
void
SHA256_32b
(benchmark::State& state)
{
std::vector<
uint8_t
>
in
(
32
,
0
);
while
(state.
KeepRunning
()) {
CSHA256
()
.
Write
(in.
data
(), in.
size
())
.
Finalize
(in.
data
());
}
}
static
void
SHA512
(benchmark::State& state)
{
uint8_t
hash[
CSHA512
::
OUTPUT_SIZE
];
std::vector<
uint8_t
>
in
(
BUFFER_SIZE
,
0
);
while
(state.
KeepRunning
())
CSHA512
().
Write
(in.
data
(), in.
size
()).
Finalize
(hash);
}
static
void
SipHash_32b
(benchmark::State& state)
{
uint256 x;
uint64_t
k1 =
0
;
while
(state.
KeepRunning
()) {
*((
uint64_t
*)x.
begin
()) =
SipHashUint256
(
0
, ++k1, x);
}
}
static
void
FastRandom_32bit
(benchmark::State& state)
{
FastRandomContext
rng
(
true
);
uint32_t
x =
0
;
while
(state.
KeepRunning
()) {
x += rng.
rand32
();
}
}
static
void
FastRandom_1bit
(benchmark::State& state)
{
FastRandomContext
rng
(
true
);
uint32_t
x =
0
;
while
(state.
KeepRunning
()) {
x += rng.
randbool
();
}
}
BENCHMARK
(
RIPEMD160
,
440
);
BENCHMARK
(
SHA1
,
570
);
BENCHMARK
(
SHA256
,
340
);
BENCHMARK
(
SHA512
,
330
);
BENCHMARK
(SHA256_32b,
4700
*
1000
);
BENCHMARK
(SipHash_32b,
40
*
1000
*
1000
);
BENCHMARK
(FastRandom_32bit,
110
*
1000
*
1000
);
BENCHMARK
(FastRandom_1bit,
440
*
1000
*
1000
);
Back
|
FazBrowse Home
|
New Git URL