Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Add execution overhead benchmarking #10977

Merged
merged 32 commits into from
Mar 17, 2022
Merged

Conversation

ggwpez
Copy link
Member

@ggwpez ggwpez commented Mar 3, 2022

Adds the benchmark-overhead sub command; tracked in paritytech/polkadot-sdk#393.
Builds one empty and one full block and measures their per-block and per-extrinsic execution overhead.

Generated weight files (with bogus values): block_weights.rs.txt, extrinsic_weights.rs.txt

Signed-off-by: Oliver Tale-Yazdi <[email protected]>
@ggwpez ggwpez added the A3-in_progress Pull request is in progress. No review needed at this stage. label Mar 3, 2022
@ggwpez ggwpez marked this pull request as ready for review March 7, 2022 15:14
@github-actions github-actions bot added A0-please_review Pull request needs code review. and removed A3-in_progress Pull request is in progress. No review needed at this stage. labels Mar 7, 2022
@ggwpez ggwpez added A3-in_progress Pull request is in progress. No review needed at this stage. and removed A0-please_review Pull request needs code review. labels Mar 7, 2022
@ggwpez ggwpez changed the title WIP: Add block benchmarking Add block benchmarking Mar 7, 2022
ggwpez added 4 commits March 7, 2022 16:29
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
ggwpez added 3 commits March 9, 2022 17:34
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
@ggwpez ggwpez added A0-please_review Pull request needs code review. B5-clientnoteworthy C1-low PR touches the given topic and has a low impact on builders. D3-trivial 🧸 PR contains trivial changes in a runtime directory that do not require an audit and removed A3-in_progress Pull request is in progress. No review needed at this stage. labels Mar 9, 2022
@@ -107,6 +107,7 @@ impl BenchRecord {
}
}

// TODO refactor once https://doc.rust-lang.org/test/stats/trait.Stats.html is stabilized.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for TODOs, please open an issue, and put the issue number into the commented code

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at this again: it says This is a nightly-only experimental API. (test).
Does this mean that it is only available for testing? Then I cannot use it...

ggwpez and others added 10 commits March 15, 2022 12:43
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
@@ -95,13 +98,21 @@ pub fn run() -> Result<()> {
You can enable it with `--features runtime-benchmarks`."
.into())
},
Some(Subcommand::BenchmarkStorage(cmd)) => {
if !cfg!(feature = "runtime-benchmarks") {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I kicked this feature check out since it is not needed.

@ggwpez
Copy link
Member Author

ggwpez commented Mar 16, 2022

I addressed all your comments and added the Polkadot side: paritytech/polkadot#5137
@bkchr

@ggwpez
Copy link
Member Author

ggwpez commented Mar 17, 2022

bot merge

@paritytech-processbot paritytech-processbot bot merged commit 89682c1 into master Mar 17, 2022
@paritytech-processbot paritytech-processbot bot deleted the oty-block-bench branch March 17, 2022 10:40
grishasobol pushed a commit to gear-tech/substrate that referenced this pull request Mar 28, 2022
* Add benchmark-block

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Remove first approach

This reverts commit 9ce7f32.

* Add block and extrinsic benchmarks

* Doc

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Fix template

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Beauty fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Check for non-empty chain

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Add tests for Stats

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Apply suggestions from code review

Co-authored-by: Shawn Tabrizi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Push first version again

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Push first version again

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Beauty fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <[email protected]>

* Update utils/frame/benchmarking-cli/src/overhead/template.rs

Co-authored-by: Bastian Köcher <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Doc + Template fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Comment fix

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Add test

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Pust merge fixup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Fixup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Move code to better place

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

Co-authored-by: Shawn Tabrizi <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
grishasobol pushed a commit to gear-tech/substrate that referenced this pull request Mar 28, 2022
* Add benchmark-block

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Remove first approach

This reverts commit 9ce7f32.

* Add block and extrinsic benchmarks

* Doc

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Fix template

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Beauty fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Check for non-empty chain

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Add tests for Stats

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Apply suggestions from code review

Co-authored-by: Shawn Tabrizi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Push first version again

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Push first version again

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Beauty fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <[email protected]>

* Update utils/frame/benchmarking-cli/src/overhead/template.rs

Co-authored-by: Bastian Köcher <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Doc + Template fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Comment fix

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Add test

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Pust merge fixup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Fixup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Move code to better place

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

Co-authored-by: Shawn Tabrizi <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
grishasobol pushed a commit to gear-tech/substrate that referenced this pull request Mar 28, 2022
* Add benchmark-block

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Remove first approach

This reverts commit 9ce7f32.

* Add block and extrinsic benchmarks

* Doc

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Fix template

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Beauty fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Check for non-empty chain

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Add tests for Stats

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Apply suggestions from code review

Co-authored-by: Shawn Tabrizi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Push first version again

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Push first version again

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Beauty fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <[email protected]>

* Update utils/frame/benchmarking-cli/src/overhead/template.rs

Co-authored-by: Bastian Köcher <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Doc + Template fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Comment fix

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Add test

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Pust merge fixup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Fixup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Move code to better place

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

Co-authored-by: Shawn Tabrizi <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
DaviRain-Su pushed a commit to octopus-network/substrate that referenced this pull request Aug 23, 2022
* Add benchmark-block

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Remove first approach

This reverts commit 9ce7f32.

* Add block and extrinsic benchmarks

* Doc

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Fix template

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Beauty fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Check for non-empty chain

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Add tests for Stats

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Apply suggestions from code review

Co-authored-by: Shawn Tabrizi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Push first version again

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Push first version again

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Beauty fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <[email protected]>

* Update utils/frame/benchmarking-cli/src/overhead/template.rs

Co-authored-by: Bastian Köcher <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Doc + Template fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Comment fix

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Add test

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Pust merge fixup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Fixup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Move code to better place

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

Co-authored-by: Shawn Tabrizi <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
ark0f pushed a commit to gear-tech/substrate that referenced this pull request Feb 27, 2023
* Add benchmark-block

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Remove first approach

This reverts commit 9ce7f32.

* Add block and extrinsic benchmarks

* Doc

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Fix template

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Beauty fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Check for non-empty chain

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Add tests for Stats

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Apply suggestions from code review

Co-authored-by: Shawn Tabrizi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Push first version again

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Push first version again

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Cleanup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Beauty fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <[email protected]>

* Update utils/frame/benchmarking-cli/src/overhead/template.rs

Co-authored-by: Bastian Köcher <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Doc + Template fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Review fixes

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Comment fix

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Add test

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Pust merge fixup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Fixup

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

* Move code to better place

Signed-off-by: Oliver Tale-Yazdi <[email protected]>

Co-authored-by: Shawn Tabrizi <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A0-please_review Pull request needs code review. C1-low PR touches the given topic and has a low impact on builders. D3-trivial 🧸 PR contains trivial changes in a runtime directory that do not require an audit
Projects
Development

Successfully merging this pull request may close these issues.

3 participants