Trying to make benchmarking docs a bit more friendly.
If you have any more ideas, specially on the Notes section, which component need more benchmarks.
(oh isn't a write-up somewhere to generate flame graphs for core ?)
Trying to make benchmarking docs a bit more friendly.
If you have any more ideas, specially on the Notes section, which component need more benchmarks.
(oh isn't a write-up somewhere to generate flame graphs for core ?)
44 | -SipHash_32b, 5, 40000000, 38.7088, 1.91103e-07, 1.96998e-07, 1.93792e-07 45 | -Sleep100ms, 5, 10, 5.01062, 0.100131, 0.100368, 0.100147 46 | -Trig, 5, 12000000, 5.95494, 9.78115e-08, 1.04354e-07, 9.80682e-08 47 | -VerifyScriptBench, 5, 6300, 9.02493, 0.000285566, 0.000288433, 0.000286175 48 | +AssembleBlock, 5, 700, 1.79954, 0.000510913, 0.000517018, 0.000514497 49 | +Base58CheckEncode, 5, 320000, 4.92458, 3.06687e-06, 3.08925e-06, 3.07813e-06
Could keep the first line and replace the rest with ...?
...
114 | + 115 | + -? 116 | + Print this help message and exit 117 | + 118 | + -evals=<n> 119 | + Number of measurement evaluations to perform. (default: 5)
Same here. This will just end up being outdated in two weeks
Not adding the bench_bitcoin options ? Was thinking it's good to see options without compiling binary
They just get outdated and incorrect information is worse than none, no?
104 | +WalletBalanceWatch, 5, 8000, 2.29993, 5.73364e-05, 5.77806e-05, 5.74599e-05 105 | ``` 106 | 107 | Help 108 | --------------------- 109 | -`-?` will print a list of options and exit:
Perhaps -help should be recommended instead of -?. -? could be interpreted as shell wildcard :-)
I agree a lot with this one, --help is just that much more intuitive!
utACK 49803e878ba21eb9f9299241f5e131c185f6aff3 modulo nits above
Updated with nits at 9a4b366 with link to how to do flame graph.
ACK 9a4b3665baa996bd88c34fa9710c8cd1907c6204
ACK for shameless bitcoinperf plug.
69 | +- Cuckoo Cache 70 | + 71 | +Going Further 72 | +-------------------- 73 | + 74 | +If you want to monitor Bitcoin Core performance more in depth (like reindex or IBD) : https://github.com/chaincodelabs/bitcoinperf
Nit: Extra before :?
Nit: for brevity s/If you want to/To/
71 | +Going Further 72 | +-------------------- 73 | + 74 | +If you want to monitor Bitcoin Core performance more in depth (like reindex or IBD) : https://github.com/chaincodelabs/bitcoinperf 75 | + 76 | +If you want to generate Flame Graphs for Bitcoin Core : https://github.com/eklitzke/bitcoin/blob/flamegraphs/doc/flamegraphs.md
Nit: Extra before :?
Nit: for brevity s/If you want to/To/
ACK 9a4b3665baa996bd88c34fa9710c8cd1907c6204 modulo nits
54 | -`-?` will print a list of options and exit: 55 | 56 | - src/bench/bench_bitcoin -? 57 | + src/bench/bench_bitcoin --help 58 | + 59 | +Print you options like scaling factor or per-benchmark filter.
s/you/[your|out]/? Not sure which word you meant to write here but this isn't right.
7 | +thread queue, wallet balance. 8 | 9 | Running 10 | --------------------- 11 | + 12 | +For benchmarks purposes you only need to compile `bitcoin_bench`. Beware to configure without `--enable-debug` as it impacts
Grammar error: s/to configure/of configuring/
s/it impacts/this would impact/
8 | 9 | Running 10 | --------------------- 11 | + 12 | +For benchmarks purposes you only need to compile `bitcoin_bench`. Beware to configure without `--enable-debug` as it impacts 13 | +benchmarking
Could you describe how/why omitting the --enable-debug argument would impact benchmarking?
Nit: missing punctuation at end of sentence.
I would say main point is lock analysis, updated
Concept ACK. Some comments for your consideration.
Updated at 05fdb97, thanks all for the super-fast reviews!
ACK 05fdb97df46d0a0675b93e9791bd5d498e5e5117
10 | --------------------- 11 | + 12 | +For benchmarks purposes you only need to compile `bitcoin_bench`. Beware of configuring without `--enable-debug` as this would impact 13 | +benchmarking by unlatching log printers and lock analysis. 14 | + 15 | + make -C src bench_bitcoin
Shouldn't this be make -C src bench/bench_bitcoin ?
I think that would be clearer given all the following commands all use src/bench/bench_bitcoin
Well in fact no. I was surprised but make -C src bench/bench_bitcoin doesn't work. Maybe makefile target needs to be updated somewhere..
That’s confusing, it worked for me when I tested it earlier?
Dunno but I tested it again on my Debian and doesn't work. Should some configure flags be set correctly ?
I'm just doing:
cd bitcoin
./autogen.sh
./configure
make -C src bench/bench_bitcoin
src/bench/bench_bitcoin --help
Tried same and got a classic makefile error:
make: Entering directory '/home/user/Bitcoin/bitcoin/src'
make: *** No rule to make target 'bench/bitcoin_bench'. Stop.
make: Leaving directory '/home/user/Bitcoin/bitcoin/src
$ make -j 9 -C src bench/bench_bitcoin
make: Entering directory '/home/marco/workspace/btc_bitcoin_core/src'
make[1]: Entering directory '/home/marco/workspace/btc_bitcoin_core'
make[1]: Leaving directory '/home/marco/workspace/btc_bitcoin_core'
make: Leaving directory '/home/marco/workspace/btc_bitcoin_core/src'
$ make -j 9 -C src bench_bitcoin
make: Entering directory '/home/marco/workspace/btc_bitcoin_core/src'
make: *** No rule to make target 'bench_bitcoin'. Stop.
make: Leaving directory '/home/marco/workspace/btc_bitcoin_core/src'
What version of debian are you using?
make -j 9 -C src bench_bitcoin
src/bench/bench_bitcoin --help
from root this works for me on Debian 4.19.37-5 (2019-06-19) x86_64.
Debian 9.9. This one works too for me.
Huh, in a fresh docker of debian 9.9 I get:
# lsb_release -d && make -j 16 -C src bench_bitcoin
Description: Debian GNU/Linux 9.9 (stretch)
make: Entering directory '/bitcoin/src'
make: *** No rule to make target 'bench_bitcoin'. Stop.
make: Leaving directory '/bitcoin/src'
ACK 05fdb97df46d0a0675b93e9791bd5d498e5e5117 - with the single nit.
If there's interest the Flame Graph documentation could probably be bought into either this, or the https://github.com/bitcoin-core/docs/ repo at some point.
Yes, I want to give a try to flame graph and beef it up, will bring it in at this point. Like soon.