Commit Graph

11 Commits

Author SHA1 Message Date
lateminer
9cc4974283 Make it compile 2018-10-14 16:44:21 +03:00
Russell Yanofsky
db82c9a2cf Add microbenchmarks to profile more code paths.
The new benchmarks exercise script validation, CCoinsDBView caching,
mempool eviction, and wallet coin selection code.

All of the benchmarks added here are extremely simple and don't
necessarily mirror common real world conditions or interesting
performance edge cases. Details about how specific benchmarks can be
improved are noted in comments.

Github-Issue: #7883
2018-10-14 14:59:41 +03:00
Luke Dashjr
22cb3dc62b Add MIT license to Makefiles 2018-10-14 14:59:27 +03:00
Yuri Zhykin
ecf2bf5582 bench: Added base58 encoding/decoding benchmarks 2018-10-14 14:58:18 +03:00
Wladimir J. van der Laan
dc38daaf38 bench: Add crypto hash benchmarks
Add benchmarks for the cryptographic hash algorithms:

- RIPEMD160
- SHA1
- SHA256
- SHA512

Continues work on #7883.
2018-10-14 14:58:09 +03:00
Pieter Wuille
cc2794d2f8 Benchmark rolling bloom filter 2018-10-14 14:58:00 +03:00
Luke Dashjr
598c291182 LDADD dependency order shuffling 2018-01-09 23:43:24 +03:00
Luke Dashjr
6e4270f333 Bugfix: The var is LIBUNIVALUE,not LIBBITCOIN_UNIVALUE 2018-01-09 23:42:42 +03:00
Cory Fields
17c4d9d164 build: Split hardening/fPIE options out
This allows for fPIE to be used selectively.
2015-11-09 22:50:31 -05:00
Gavin Andresen
7072c544b5 Support very-fast-running benchmarks
Avoid calling gettimeofday every time through the benchmarking loop, by keeping
track of how long each loop takes and doubling the number of iterations done
between time checks when they take less than 1/16'th of the total elapsed time.
2015-09-30 09:24:42 -04:00
Gavin Andresen
535ed9223d Simple benchmarking framework
Benchmarking framework, loosely based on google's micro-benchmarking
library (https://github.com/google/benchmark)

Wny not use the Google Benchmark framework? Because adding Even More Dependencies
isn't worth it. If we get a dozen or three benchmarks and need nanosecond-accurate
timings of threaded code then switching to the full-blown Google Benchmark library
should be considered.

The benchmark framework is hard-coded to run each benchmark for one wall-clock second,
and then spits out .csv-format timing information to stdout. It is left as an
exercise for later (or maybe never) to add command-line arguments to specify which
benchmark(s) to run, how long to run them for, how to format results, etc etc etc.
Again, see the Google Benchmark framework for where that might end up.

See src/bench/MilliSleep.cpp for a sanity-test benchmark that just benchmarks
'sleep 100 milliseconds.'

To compile and run benchmarks:
  cd src; make bench

Sample output:

Benchmark,count,min,max,average
Sleep100ms,10,0.101854,0.105059,0.103881
2015-09-30 09:24:42 -04:00