Commit Graph

24 Commits

Author SHA1 Message Date
Greg Pfeil 1aac7c0c32
Split C++ generated from Rust into own lib
This allows us to compile it with different flags. In particular, there are
warnings we can’t easily fix in the generated code.
2023-04-03 18:09:30 -06:00
Alex Wied f5c93e7d1d build: Reorder link targets to properly build on Nix 2022-07-29 15:30:58 -04:00
Pieter Wuille ae3dc3f134 8-way AVX2 implementation for double SHA256 on 64-byte inputs
(cherry picked from commit bitcoin/bitcoin@4437d6e1f3)
2022-07-16 10:13:26 +00:00
Pieter Wuille 25dc154eef 4-way SSE4.1 implementation for double SHA256 on 64-byte inputs
(cherry picked from commit bitcoin/bitcoin@230294bf5f)
2022-07-16 10:13:26 +00:00
Pieter Wuille 93e2b632e6 Benchmark Merkle root computation
Zcash: Commented out second BENCHMARK argument as we haven't backported
the benchmark refactor that adds it.

(cherry picked from commit bitcoin/bitcoin@0df017889b)
2022-07-16 10:13:26 +00:00
Jack Grigg 2ca72adf8b build: Add missing LIBUNIVALUE to Makefile.bench.include LDADD 2020-10-13 14:12:41 +01:00
fanquake 0ad49bca44 build: remove OpenSSL detection and libs 2020-09-30 00:40:12 +01:00
fanquake 8993f1f708 build: remove SSL lib detection 2020-09-30 00:40:12 +01:00
Homu 7d94064616 Auto merge of #4643 - str4d:locked-memory-manager, r=str4d
Locked memory manager

Add a pool for locked memory chunks, replacing `LockedPageManager`.

Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#8321
- bitcoin/bitcoin#8753
- bitcoin/bitcoin#9063
- bitcoin/bitcoin#9070
- bitcoin/bitcoin#11385
- bitcoin/bitcoin#12048
  - Excludes change to benchmark.
- bitcoin/bitcoin#15117
- bitcoin/bitcoin#16161
  - Excludes Travis CI changes.
  - Includes change from bitcoin/bitcoin#13163
- bitcoin/bitcoin#15600
- bitcoin/bitcoin#18443
- Assorted small changes from:
  - bitcoin/bitcoin#9233
  - bitcoin/bitcoin#10483
  - bitcoin/bitcoin#10645
  - bitcoin/bitcoin#10969
  - bitcoin/bitcoin#11351
- bitcoin/bitcoin#19111
  - Excludes change to `src/rpc/server.cpp`
- bitcoin/bitcoin#9804
  - Only the commit for `src/key.cpp`
- bitcoin/bitcoin#9598
2020-09-29 22:18:48 +00:00
str4d e2eeabe9e0
Update license headers
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2020-09-25 16:02:25 +01:00
Cory Fields f261701265 leveldb: enable runtime-detected crc32 instructions 2020-09-23 00:07:48 +01:00
Luke Dashjr 7bf4f0b7e7 Add MIT license to Makefiles 2020-09-22 23:08:01 +01:00
Wladimir J. van der Laan 088219f786 bench: Add benchmark for lockedpool allocation/deallocation 2020-07-31 06:43:09 +01:00
Jack Grigg 90f7234136 Replace librustzcash from depends system with src/rust
The --enable-online-rust configure flag replicates the behaviour of the
LIBRUSTZCASH_OVERRIDE environment variable (enabling the build system to
use crates.io instead of vendored dependencies).
2020-03-06 16:49:03 +13:00
Jack Grigg 1eca94b0b1 Benchmark Zcash verification operations 2020-01-30 19:14:20 +00:00
Cory Fields 204384c016 build: Split hardening/fPIE options out
This allows for fPIE to be used selectively.

Zcash: Second half of upstream commit 17c4d9d1647bbac4b0557136b1c3d98c951feb79
First half was pulled in as c459de2f03
2020-01-22 21:41:28 +00:00
Jeremy Rubin a908ba71c4 Add prevector destructor benchmark 2020-01-22 21:41:28 +00:00
Jeremy Rubin 7e1cebe44f Add Basic CheckQueue Benchmark 2020-01-22 21:41:28 +00:00
Wladimir J. van der Laan 2561e2664d bench: Add support for measuring CPU cycles
This adds cycle min/max/avg to the statistics.

Supported on x86 and x86_64 (natively through rdtsc), as well as Linux
(perf syscall).
2020-01-22 21:41:28 +00:00
Yuri Zhykin 9585d5a64f bench: Added base58 encoding/decoding benchmarks 2020-01-22 21:40:38 +00:00
Wladimir J. van der Laan 6daf01e402 bench: Add crypto hash benchmarks
Add benchmarks for the cryptographic hash algorithms:

- RIPEMD160
- SHA1
- SHA256
- SHA512

Continues work on #7883.
2020-01-22 21:40:38 +00:00
Pieter Wuille 3161960fc2 Benchmark rolling bloom filter 2020-01-22 21:40:38 +00:00
Gavin Andresen a81da44a8f 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.
2020-01-22 21:40:38 +00:00
Gavin Andresen d7a20b6373 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
2020-01-22 21:40:35 +00:00