Benchmarking also benchmark for decoding the call (#9343)

* benchmark for decoding of call

* better names

* fix benchmarks

* cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_lottery --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/lottery/src/weights.rs --template=./.maintain/frame-weight-template.hbs

* cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_utility --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/utility/src/weights.rs --template=./.maintain/frame-weight-template.hbs

* cargo run --quiet --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

Co-authored-by: Parity Benchmarking Bot <admin@parity.io>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
This commit is contained in:
Guillaume Thiolliere
2021-07-22 11:29:44 +02:00
committed by GitHub
parent c5f5c9c28c
commit e18f388dac
5 changed files with 78 additions and 65 deletions
+13 -4
View File
@@ -302,12 +302,21 @@ macro_rules! benchmarks_iter {
{ $( $where_clause )* } { $( $where_clause )* }
( $( $names )* ) ( $( $names )* )
( $( $names_extra )* ) ( $( $names_extra )* )
$name { $( $code )* }: { $name {
$( $code )*
let __benchmarked_call_encoded = $crate::frame_support::codec::Encode::encode(
&<Call<T $(, $instance )?>>::$dispatch($( $arg ),*)
);
}: {
let call_decoded = <
Call<T $(, $instance )?>
as $crate::frame_support::codec::Decode
>::decode(&mut &__benchmarked_call_encoded[..])
.expect("call is encoded above, encoding must be correct");
< <
Call<T $(, $instance)? > as $crate::frame_support::traits::UnfilteredDispatchable Call<T $(, $instance)? > as $crate::frame_support::traits::UnfilteredDispatchable
>::dispatch_bypass_filter( >::dispatch_bypass_filter(call_decoded, $origin.into())?;
Call::<T $(, $instance)? >::$dispatch($($arg),*), $origin.into()
)?;
} }
verify $postcode verify $postcode
$( $rest )* $( $rest )*
@@ -727,7 +727,7 @@ benchmarks! {
let origin = RawOrigin::Signed(instance.caller.clone()); let origin = RawOrigin::Signed(instance.caller.clone());
assert_eq!(T::Currency::total_balance(&beneficiary), 0u32.into()); assert_eq!(T::Currency::total_balance(&beneficiary), 0u32.into());
assert_eq!(T::Currency::total_balance(&instance.account_id), Endow::max::<T>()); assert_eq!(T::Currency::total_balance(&instance.account_id), Endow::max::<T>());
}: call(origin, instance.addr, 0u32.into(), Weight::max_value(), vec![]) }: call(origin, instance.addr.clone(), 0u32.into(), Weight::max_value(), vec![])
verify { verify {
if r > 0 { if r > 0 {
assert_eq!(T::Currency::total_balance(&instance.account_id), 0u32.into()); assert_eq!(T::Currency::total_balance(&instance.account_id), 0u32.into());
+18 -18
View File
@@ -17,8 +17,8 @@
//! Autogenerated weights for pallet_lottery //! Autogenerated weights for pallet_lottery
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2021-06-19, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2021-07-14, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128
// Executed Command: // Executed Command:
@@ -57,33 +57,33 @@ pub trait WeightInfo {
pub struct SubstrateWeight<T>(PhantomData<T>); pub struct SubstrateWeight<T>(PhantomData<T>);
impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
fn buy_ticket() -> Weight { fn buy_ticket() -> Weight {
(71_604_000 as Weight) (74_856_000 as Weight)
.saturating_add(T::DbWeight::get().reads(6 as Weight)) .saturating_add(T::DbWeight::get().reads(6 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight)) .saturating_add(T::DbWeight::get().writes(4 as Weight))
} }
fn set_calls(n: u32, ) -> Weight { fn set_calls(n: u32, ) -> Weight {
(15_015_000 as Weight) (15_549_000 as Weight)
// Standard Error: 5_000 // Standard Error: 7_000
.saturating_add((301_000 as Weight).saturating_mul(n as Weight)) .saturating_add((281_000 as Weight).saturating_mul(n as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight))
} }
fn start_lottery() -> Weight { fn start_lottery() -> Weight {
(58_855_000 as Weight) (58_904_000 as Weight)
.saturating_add(T::DbWeight::get().reads(3 as Weight)) .saturating_add(T::DbWeight::get().reads(3 as Weight))
.saturating_add(T::DbWeight::get().writes(3 as Weight)) .saturating_add(T::DbWeight::get().writes(3 as Weight))
} }
fn stop_repeat() -> Weight { fn stop_repeat() -> Weight {
(7_524_000 as Weight) (7_714_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight)) .saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight))
} }
fn on_initialize_end() -> Weight { fn on_initialize_end() -> Weight {
(114_766_000 as Weight) (117_420_000 as Weight)
.saturating_add(T::DbWeight::get().reads(6 as Weight)) .saturating_add(T::DbWeight::get().reads(6 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight)) .saturating_add(T::DbWeight::get().writes(4 as Weight))
} }
fn on_initialize_repeat() -> Weight { fn on_initialize_repeat() -> Weight {
(119_402_000 as Weight) (123_035_000 as Weight)
.saturating_add(T::DbWeight::get().reads(7 as Weight)) .saturating_add(T::DbWeight::get().reads(7 as Weight))
.saturating_add(T::DbWeight::get().writes(5 as Weight)) .saturating_add(T::DbWeight::get().writes(5 as Weight))
} }
@@ -92,33 +92,33 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// For backwards compatibility and tests // For backwards compatibility and tests
impl WeightInfo for () { impl WeightInfo for () {
fn buy_ticket() -> Weight { fn buy_ticket() -> Weight {
(71_604_000 as Weight) (74_856_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(6 as Weight)) .saturating_add(RocksDbWeight::get().reads(6 as Weight))
.saturating_add(RocksDbWeight::get().writes(4 as Weight)) .saturating_add(RocksDbWeight::get().writes(4 as Weight))
} }
fn set_calls(n: u32, ) -> Weight { fn set_calls(n: u32, ) -> Weight {
(15_015_000 as Weight) (15_549_000 as Weight)
// Standard Error: 5_000 // Standard Error: 7_000
.saturating_add((301_000 as Weight).saturating_mul(n as Weight)) .saturating_add((281_000 as Weight).saturating_mul(n as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight)) .saturating_add(RocksDbWeight::get().writes(1 as Weight))
} }
fn start_lottery() -> Weight { fn start_lottery() -> Weight {
(58_855_000 as Weight) (58_904_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(3 as Weight)) .saturating_add(RocksDbWeight::get().reads(3 as Weight))
.saturating_add(RocksDbWeight::get().writes(3 as Weight)) .saturating_add(RocksDbWeight::get().writes(3 as Weight))
} }
fn stop_repeat() -> Weight { fn stop_repeat() -> Weight {
(7_524_000 as Weight) (7_714_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(1 as Weight)) .saturating_add(RocksDbWeight::get().reads(1 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight)) .saturating_add(RocksDbWeight::get().writes(1 as Weight))
} }
fn on_initialize_end() -> Weight { fn on_initialize_end() -> Weight {
(114_766_000 as Weight) (117_420_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(6 as Weight)) .saturating_add(RocksDbWeight::get().reads(6 as Weight))
.saturating_add(RocksDbWeight::get().writes(4 as Weight)) .saturating_add(RocksDbWeight::get().writes(4 as Weight))
} }
fn on_initialize_repeat() -> Weight { fn on_initialize_repeat() -> Weight {
(119_402_000 as Weight) (123_035_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(7 as Weight)) .saturating_add(RocksDbWeight::get().reads(7 as Weight))
.saturating_add(RocksDbWeight::get().writes(5 as Weight)) .saturating_add(RocksDbWeight::get().writes(5 as Weight))
} }
+30 -26
View File
@@ -17,8 +17,8 @@
//! Autogenerated weights for frame_system //! Autogenerated weights for frame_system
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2021-06-19, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2021-07-20, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128
// Executed Command: // Executed Command:
@@ -57,78 +57,82 @@ pub trait WeightInfo {
/// Weights for frame_system using the Substrate node and recommended hardware. /// Weights for frame_system using the Substrate node and recommended hardware.
pub struct SubstrateWeight<T>(PhantomData<T>); pub struct SubstrateWeight<T>(PhantomData<T>);
impl<T: crate::Config> WeightInfo for SubstrateWeight<T> { impl<T: crate::Config> WeightInfo for SubstrateWeight<T> {
fn remark(_b: u32, ) -> Weight { fn remark(b: u32, ) -> Weight {
(1_038_000 as Weight) (0 as Weight)
}
fn remark_with_event(b: u32, ) -> Weight {
(5_246_000 as Weight)
// Standard Error: 0 // Standard Error: 0
.saturating_add((1_000 as Weight).saturating_mul(b as Weight)) .saturating_add((1_000 as Weight).saturating_mul(b as Weight))
} }
fn remark_with_event(b: u32, ) -> Weight {
(16_569_000 as Weight)
// Standard Error: 0
.saturating_add((2_000 as Weight).saturating_mul(b as Weight))
}
fn set_heap_pages() -> Weight { fn set_heap_pages() -> Weight {
(1_586_000 as Weight) (1_783_000 as Weight)
.saturating_add(T::DbWeight::get().writes(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight))
} }
fn set_changes_trie_config() -> Weight { fn set_changes_trie_config() -> Weight {
(7_181_000 as Weight) (7_727_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight)) .saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(2 as Weight)) .saturating_add(T::DbWeight::get().writes(2 as Weight))
} }
fn set_storage(i: u32, ) -> Weight { fn set_storage(i: u32, ) -> Weight {
(0 as Weight) (0 as Weight)
// Standard Error: 0 // Standard Error: 0
.saturating_add((568_000 as Weight).saturating_mul(i as Weight)) .saturating_add((875_000 as Weight).saturating_mul(i as Weight))
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight)))
} }
fn kill_storage(i: u32, ) -> Weight { fn kill_storage(i: u32, ) -> Weight {
(2_278_000 as Weight) (4_216_000 as Weight)
// Standard Error: 0 // Standard Error: 0
.saturating_add((423_000 as Weight).saturating_mul(i as Weight)) .saturating_add((555_000 as Weight).saturating_mul(i as Weight))
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(i as Weight)))
} }
fn kill_prefix(p: u32, ) -> Weight { fn kill_prefix(p: u32, ) -> Weight {
(8_243_000 as Weight) (14_558_000 as Weight)
// Standard Error: 1_000 // Standard Error: 1_000
.saturating_add((795_000 as Weight).saturating_mul(p as Weight)) .saturating_add((781_000 as Weight).saturating_mul(p as Weight))
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(p as Weight))) .saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(p as Weight)))
} }
} }
// For backwards compatibility and tests // For backwards compatibility and tests
impl WeightInfo for () { impl WeightInfo for () {
fn remark(_b: u32, ) -> Weight { fn remark(b: u32, ) -> Weight {
(1_038_000 as Weight) (0 as Weight)
}
fn remark_with_event(b: u32, ) -> Weight {
(5_246_000 as Weight)
// Standard Error: 0 // Standard Error: 0
.saturating_add((1_000 as Weight).saturating_mul(b as Weight)) .saturating_add((1_000 as Weight).saturating_mul(b as Weight))
} }
fn remark_with_event(b: u32, ) -> Weight {
(16_569_000 as Weight)
// Standard Error: 0
.saturating_add((2_000 as Weight).saturating_mul(b as Weight))
}
fn set_heap_pages() -> Weight { fn set_heap_pages() -> Weight {
(1_586_000 as Weight) (1_783_000 as Weight)
.saturating_add(RocksDbWeight::get().writes(1 as Weight)) .saturating_add(RocksDbWeight::get().writes(1 as Weight))
} }
fn set_changes_trie_config() -> Weight { fn set_changes_trie_config() -> Weight {
(7_181_000 as Weight) (7_727_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(1 as Weight)) .saturating_add(RocksDbWeight::get().reads(1 as Weight))
.saturating_add(RocksDbWeight::get().writes(2 as Weight)) .saturating_add(RocksDbWeight::get().writes(2 as Weight))
} }
fn set_storage(i: u32, ) -> Weight { fn set_storage(i: u32, ) -> Weight {
(0 as Weight) (0 as Weight)
// Standard Error: 0 // Standard Error: 0
.saturating_add((568_000 as Weight).saturating_mul(i as Weight)) .saturating_add((875_000 as Weight).saturating_mul(i as Weight))
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) .saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(i as Weight)))
} }
fn kill_storage(i: u32, ) -> Weight { fn kill_storage(i: u32, ) -> Weight {
(2_278_000 as Weight) (4_216_000 as Weight)
// Standard Error: 0 // Standard Error: 0
.saturating_add((423_000 as Weight).saturating_mul(i as Weight)) .saturating_add((555_000 as Weight).saturating_mul(i as Weight))
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(i as Weight))) .saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(i as Weight)))
} }
fn kill_prefix(p: u32, ) -> Weight { fn kill_prefix(p: u32, ) -> Weight {
(8_243_000 as Weight) (14_558_000 as Weight)
// Standard Error: 1_000 // Standard Error: 1_000
.saturating_add((795_000 as Weight).saturating_mul(p as Weight)) .saturating_add((781_000 as Weight).saturating_mul(p as Weight))
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(p as Weight))) .saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(p as Weight)))
} }
} }
+16 -16
View File
@@ -17,8 +17,8 @@
//! Autogenerated weights for pallet_utility //! Autogenerated weights for pallet_utility
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2021-06-19, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2021-07-14, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128
// Executed Command: // Executed Command:
@@ -54,33 +54,33 @@ pub trait WeightInfo {
pub struct SubstrateWeight<T>(PhantomData<T>); pub struct SubstrateWeight<T>(PhantomData<T>);
impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
fn batch(c: u32, ) -> Weight { fn batch(c: u32, ) -> Weight {
(14_618_000 as Weight) (20_779_000 as Weight)
// Standard Error: 0 // Standard Error: 1_000
.saturating_add((610_000 as Weight).saturating_mul(c as Weight)) .saturating_add((1_080_000 as Weight).saturating_mul(c as Weight))
} }
fn as_derivative() -> Weight { fn as_derivative() -> Weight {
(3_175_000 as Weight) (3_994_000 as Weight)
} }
fn batch_all(c: u32, ) -> Weight { fn batch_all(c: u32, ) -> Weight {
(14_561_000 as Weight) (22_183_000 as Weight)
// Standard Error: 0 // Standard Error: 1_000
.saturating_add((1_013_000 as Weight).saturating_mul(c as Weight)) .saturating_add((1_506_000 as Weight).saturating_mul(c as Weight))
} }
} }
// For backwards compatibility and tests // For backwards compatibility and tests
impl WeightInfo for () { impl WeightInfo for () {
fn batch(c: u32, ) -> Weight { fn batch(c: u32, ) -> Weight {
(14_618_000 as Weight) (20_779_000 as Weight)
// Standard Error: 0 // Standard Error: 1_000
.saturating_add((610_000 as Weight).saturating_mul(c as Weight)) .saturating_add((1_080_000 as Weight).saturating_mul(c as Weight))
} }
fn as_derivative() -> Weight { fn as_derivative() -> Weight {
(3_175_000 as Weight) (3_994_000 as Weight)
} }
fn batch_all(c: u32, ) -> Weight { fn batch_all(c: u32, ) -> Weight {
(14_561_000 as Weight) (22_183_000 as Weight)
// Standard Error: 0 // Standard Error: 1_000
.saturating_add((1_013_000 as Weight).saturating_mul(c as Weight)) .saturating_add((1_506_000 as Weight).saturating_mul(c as Weight))
} }
} }