Sam Johnson
294726874c
update linregress in frame-benchmarking to 0.5.1 ( #13310 )
...
* update nalgebra in frame-benchmarking to 0.5.0
* upgrade to 0.5.1 to incorporate upstream fix in linregress
2023-02-05 20:18:56 +00:00
Koute
3faa0bd20d
Treat near-zero intercept values as zero when calculating weights ( #12573 )
...
* Treat near-zero intercept values as zero when calculating weights
* Simplify comparison
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Update contract weights
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
2022-10-28 20:39:59 +00:00
Koute
92d2977292
Force base weights to be the minimum only when the intercept is negative ( #12482 )
...
* Force base weights to be the minimum only when the intercept is negative; emit minimum execution times
* Add an `assert` making sure the intercept is zero when it's supposed to be zero
* Fix template
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* ".git/.scripts/bench-bot.sh" pallet dev pallet_assets
* ".git/.scripts/bench-bot.sh" pallet dev pallet_uniques
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: command-bot <>
2022-10-20 20:07:52 +00:00
Shawn Tabrizi
023aa03fea
Avoid Unstable Sort ( #12455 )
...
* dont use unstable sort
* remove comment
* add clippy rule
2022-10-11 18:41:43 +00:00
Koute
b1bbdf1192
Improve base weights consistency and make sure they're never zero ( #11806 )
...
* Improve base weights consistency and make sure they're never zero
* Switch back to `linregress` crate; add back estimation errors
* Move the test into `mod tests`
* Use all of the samples instead of only the first one
* Use full precision extrinsic base weights and slopes
* Add an extra comment
* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts
Co-authored-by: parity-processbot <>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2022-09-14 16:01:13 +00:00
Falco Hirschenberger
b581604aa7
Apply some clippy lints ( #11154 )
...
* Apply some clippy hints
* Revert clippy ci changes
* Update client/cli/src/commands/generate.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/cli/src/commands/inspect_key.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/db/src/bench.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/db/src/bench.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/service/src/client/block_rules.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/service/src/client/block_rules.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/network/src/transactions.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/network/src/protocol.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Revert due to missing `or_default` function.
* Fix compilation and simplify code
* Undo change that corrupts benchmark.
* fix clippy
* Update client/service/test/src/lib.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/state-db/src/noncanonical.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/state-db/src/noncanonical.rs
remove leftovers!
* Update client/tracing/src/logging/directives.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update utils/fork-tree/src/lib.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* added needed ref
* Update frame/referenda/src/benchmarking.rs
* Simplify byte-vec creation
* let's just not overlap the ranges
* Correction
* cargo fmt
* Update utils/frame/benchmarking-cli/src/shared/stats.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update utils/frame/benchmarking-cli/src/pallet/command.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update utils/frame/benchmarking-cli/src/pallet/command.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
Co-authored-by: Giles Cope <gilescope@gmail.com >
2022-04-30 21:28:27 +00:00
Bastian Köcher
f3662b4bba
Happy new year 2022 ( #10573 )
2022-01-03 09:22:14 +01:00
Shawn Tabrizi
a33b7c2e36
REAL fix for min-square for --steps=1 --repeats=1 ( #10323 ) ( #10369 )
...
* Revert "frame-benchmarking: Fix `min-square` for `--steps=1` (#10323 )"
This reverts commit 2d0e858b81 .
* actual fix
2021-11-25 11:24:45 +01:00
Bastian Köcher
2d0e858b81
frame-benchmarking: Fix min-square for --steps=1 ( #10323 )
2021-11-23 08:39:43 +00:00
Kian Paimani
937b6f246e
put TryInto and TryFrom in sp_std::prelude ( #10183 )
...
* Switch to Rust 2021
* Update trybuild to fix errors
* half baked
* fix
* remove unused import
* remove more warnings
Co-authored-by: Bastian Köcher <info@kchr.de >
2021-11-08 00:24:53 +01:00
Shawn Tabrizi
ccfe485b91
Custom Benchmark Errors and Override ( #9517 )
...
* initial idea
* update benchmark test to frame v2
* fix some errors
* fixes for elec phrag
* fix tests
* update extrinsic time and docs
* fix import
* undo extra changes
* helper function
* wrong way
* Update frame/benchmarking/src/utils.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* doesnt need encode/decode
* fix benchmark return
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
2021-08-19 12:34:56 +00:00
Kian Paimani
abd08e29ce
Rewrap all comments to 100 line width ( #9490 )
...
* reformat everything again
* manual formatting
* last manual fix
* Fix build
2021-08-11 14:56:55 +00:00
Bastian Köcher
7b56ab15b4
Run cargo fmt on the whole code base ( #9394 )
...
* Run cargo fmt on the whole code base
* Second run
* Add CI check
* Fix compilation
* More unnecessary braces
* Handle weights
* Use --all
* Use correct attributes...
* Fix UI tests
* AHHHHHHHHH
* 🤦
* Docs
* Fix compilation
* 🤷
* Please stop
* 🤦 x 2
* More
* make rustfmt.toml consistent with polkadot
Co-authored-by: André Silva <andrerfosilva@gmail.com >
2021-07-21 14:32:32 +00:00
Shawn Tabrizi
b42b8fc5fb
Include StorageInfo in Benchmarking Pipeline ( #9090 )
...
* extend storageinfo
* extend_storage_info
* use vec
* add storage info to pipeline
* get read and written keys
* undo storageinfo move
* refactor keytracker
* return read / write count
* playing with key matching
* add basic `StorageInfo` constructor
* add whitelisted to returned info
* fix some test stuff
* pipe comments into benchmark data
* add_storage_comments
* add comments to template
* track only storage prefix
* Update frame/benchmarking/src/lib.rs
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* fix test
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* remove test logs
* add temp benchmark script
* Apply suggestions from code review
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com >
* remove keytracker and use trackedstoragekey
* add comment for unknown keys
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_timestamp --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/timestamp/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* remove duplicate comments with unknown keys
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_timestamp --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/timestamp/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* refactor bench tracker, and fix results
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* fix child tries in new tracker
* extra newline
* fix unused warning
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_timestamp --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/timestamp/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* fix master merge
* storage info usage refactor
* remove now unused
* fix refactor
* use a vec for prefix
* fix tests
* also update writer to use vec
* disable read and written keys for now
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=frame_system --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/system/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* Update frame/system/src/weights.rs
* fix test
* Delete weights.rs
* reset weights
Co-authored-by: Parity Bot <admin@parity.io >
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com >
2021-07-07 22:06:06 +00:00
Shawn Tabrizi
c04b44b0a3
Add PoV Tracking to Benchmarking Pipeline ( #8559 )
...
* Added a function to estimate proof size for benchmarking
* integrate proof_size into benchmarking pipeline
* Update client/db/src/bench.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* Update client/db/src/bench.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
* fix tests
* one more test
* Update bench.rs
* Update utils/frame/benchmarking-cli/src/writer.rs
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
* Update utils/frame/benchmarking-cli/src/command.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
Co-authored-by: arkpar <arkady.paronyan@gmail.com >
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com >
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io >
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
2021-04-08 12:54:46 +02:00
Shawn Tabrizi
cdc59db5b7
Make Benchmark Output Analysis Function Configurable ( #8228 )
...
* Integrate `output-analysis`
* fix test
* use default
* cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=frame_system --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/system/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* Update frame/system/src/weights.rs
* cargo run --release --features runtime-benchmarks --manifest-path bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=frame_system --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/system/src/weights.rs --template=./.maintain/frame-weight-template.hbs --output-analysis=max
* Update frame/system/src/weights.rs
* dont discard value_dist and model
* feedback
Co-authored-by: Parity Benchmarking Bot <admin@parity.io >
2021-03-02 15:56:51 +00:00
Bastian Köcher
e3e651f72c
Happy new year ( #7814 )
...
* Happy new year
Updates the copyright years and fixes wrong license headers.
* Fix the template
* Split HEADER into HEADER-APACHE & HEADER-GPL
2021-01-04 09:03:13 +00:00
Shawn Tabrizi
7a43cca875
benchmarks: Fix panic in case of a missing model ( #7698 )
...
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
2020-12-09 04:00:52 +00:00
Shawn Tabrizi
ea21afa42a
Docs for Frame Benchmarking ( #7121 )
...
* remove test benchmark pallet
* docs
* finish docs
* Update README.md
* simplify intro
* introduce weight later
* Apply suggestions from code review
Co-authored-by: David <dvdplm@gmail.com >
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Apply suggestions from code review
Co-authored-by: David <dvdplm@gmail.com >
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Apply suggestions from code review
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
Co-authored-by: David <dvdplm@gmail.com >
* Apply suggestions from code review
Co-authored-by: David <dvdplm@gmail.com >
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Update frame/benchmarking/README.md
Co-authored-by: David <dvdplm@gmail.com >
* Update frame/benchmarking/README.md
* Update frame/benchmarking/README.md
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
* Update README.md
* Update README.md
* Update README.md
* Update README.md
Co-authored-by: David <dvdplm@gmail.com >
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com >
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
2020-09-21 21:10:03 +00:00
Shawn Tabrizi
d4c21eace6
Support Component-less Runtime Benchmarks ( #6645 )
...
* Update benchmarking macro for no components
* Handle output when error
* skip when empty
* Update analysis for zero components
* add back trace logs
* Apply suggestions from code review
* remove mean value, and use median value
* Add note
* Use standard for loop
* Apply suggestions from code review
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Update lib.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
2020-07-16 02:21:15 +02:00
Shawn Tabrizi
2019f70768
Benchmarks Writer CLI ( #6567 )
...
* initial mockup
* add and wipe
* track writes
* start to add to pipeline
* return all reads/writes
* Log reads and writes from bench db
* causes panic
* Allow multiple commits
* commit before ending benchmark
* doesn't work???
* fix
* Update lib.rs
* switch to struct for `BenchmarkResults`
* add to output
* fix test
* line width
* @kianenigma review
* Add Whitelist to DB Tracking in Benchmarks Pipeline (#6405 )
* hardcoded whitelist
* Add whitelist to pipeline
* Remove whitelist pipeline from CLI, add to runtime
* clean-up unused db initialized whitelist
* Add regression analysis to DB Tracking (#6475 )
* Add selector
* add tests
* debug formatter for easy formula
* initial idea
* use all benchmarks
* broken
* working without trait
* Make work for multiple pallets
* Fix merge issues
* writer appends to file
* implement () for balances weight trait
* update name of trait
* Weights to WeightInfo
* auto trait writer
* Heap pages are configurable
* clean out runtime changes
* more clean up
* Fix string generation
* Update comments
* Update bin/node/runtime/src/lib.rs
Co-authored-by: arkpar <arkady.paronyan@gmail.com >
2020-07-06 09:34:24 +00:00
Shawn Tabrizi
935ee6f545
Add DB Read/Write Tracking to Benchmarking Pipeline ( #6386 )
...
* initial mockup
* add and wipe
* track writes
* start to add to pipeline
* return all reads/writes
* Log reads and writes from bench db
* causes panic
* Allow multiple commits
* commit before ending benchmark
* doesn't work???
* fix
* Update lib.rs
* switch to struct for `BenchmarkResults`
* add to output
* fix test
* line width
* @kianenigma review
* Add Whitelist to DB Tracking in Benchmarks Pipeline (#6405 )
* hardcoded whitelist
* Add whitelist to pipeline
* Remove whitelist pipeline from CLI, add to runtime
* clean-up unused db initialized whitelist
* Add regression analysis to DB Tracking (#6475 )
* Add selector
* add tests
* debug formatter for easy formula
* Update client/db/src/bench.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
Co-authored-by: arkpar <arkady.paronyan@gmail.com >
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
2020-06-24 21:03:55 +02:00
Benjamin Kampmann
be8c96adec
Relax substrate licensing scheme ( #5947 )
2020-05-15 13:21:56 +02:00
Shawn Tabrizi
b301451c85
Frame System Benchmarking ( #5834 )
...
* Frame System Benchmarking
* Add to substrate node, avoid divide by zero errors in analysis
* reduce features
* some fixes
* copy pasta
2020-04-30 15:46:44 +02:00
Marcio Diaz
0c10687022
Regression algorithm for runtime benchmarks ( #5288 )
...
* Add linregress
* Regression, initial stuff.
* More analytics
* whitespace
* Fix
* Median slopes regression algo
* Warnings
* Update to lastest benchmark changes.
* Use both algorithms temp.
* Move analysis to frame.
* Fix tests.
* Only build analysis in std
Co-authored-by: Gav Wood <gavin@parity.io >
2020-03-23 14:07:25 +01:00