Commit 02e6fb3c authored by Rusty Russell's avatar Rusty Russell

crypto/sha256: add benchmark.

Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent 712dc43d
CCANDIR := ../../../../
CFLAGS := -Wall -I$(CCANDIR) -O3 -flto
LDFLAGS := -O3 -flto
double-sha-bench: double-sha-bench.o ccan-time.o ccan-crypto-sha256.o
ccan-crypto-sha256.o: $(CCANDIR)/ccan/crypto/sha256/sha256.c
$(CC) $(CFLAGS) -c -o $@ $<
ccan-time.o: $(CCANDIR)/ccan/time/time.c
$(CC) $(CFLAGS) -c -o $@ $<
/* Bitcoin does a lot of SHA of SHA. Benchmark that. */
#include <ccan/crypto/sha256/sha256.h>
#include <ccan/time/time.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
struct timeabs start;
struct timerel diff;
size_t i, n;
struct sha256 h;
n = atoi(argv[1] ? argv[1] : "1000000");
sha256(&h, &n, sizeof(n));
start = time_now();
for (i = 0; i < n; i++)
sha256(&h, &h, sizeof(h));
diff = time_divide(time_between(time_now(), start), n);
printf("Hashing time for %02x%02x%02x%02x%02x%02x... is %llu nsec\n",
h.u.u8[0], h.u.u8[1], h.u.u8[2], h.u.u8[3], h.u.u8[4], h.u.u8[5],
(unsigned long long)time_to_nsec(diff));
return 0;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment