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

Benchmarking also benchmark for decoding the call #9343

Merged
10 commits merged into from
Jul 22, 2021
17 changes: 13 additions & 4 deletions frame/benchmarking/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -302,12 +302,21 @@ macro_rules! benchmarks_iter {
{ $( $where_clause )* }
( $( $names )* )
( $( $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
>::dispatch_bypass_filter(
Call::<T $(, $instance)? >::$dispatch($($arg),*), $origin.into()
)?;
>::dispatch_bypass_filter(call_decoded, $origin.into())?;
}
verify $postcode
$( $rest )*
Expand Down
2 changes: 1 addition & 1 deletion frame/contracts/src/benchmarking/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -727,7 +727,7 @@ benchmarks! {
let origin = RawOrigin::Signed(instance.caller.clone());
assert_eq!(T::Currency::total_balance(&beneficiary), 0u32.into());
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 {
if r > 0 {
assert_eq!(T::Currency::total_balance(&instance.account_id), 0u32.into());
Expand Down
36 changes: 18 additions & 18 deletions frame/lottery/src/weights.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

//! Autogenerated weights for pallet_lottery
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0
//! DATE: 2021-06-19, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2021-07-14, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128

// Executed Command:
Expand Down Expand Up @@ -56,33 +56,33 @@ pub trait WeightInfo {
pub struct SubstrateWeight<T>(PhantomData<T>);
impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
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().writes(4 as Weight))
}
fn set_calls(n: u32, ) -> Weight {
(15_015_000 as Weight)
// Standard Error: 5_000
.saturating_add((301_000 as Weight).saturating_mul(n as Weight))
(15_549_000 as Weight)
// Standard Error: 7_000
.saturating_add((281_000 as Weight).saturating_mul(n as Weight))
.saturating_add(T::DbWeight::get().writes(1 as 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().writes(3 as 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().writes(1 as 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().writes(4 as 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().writes(5 as Weight))
}
Expand All @@ -91,33 +91,33 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// For backwards compatibility and tests
impl WeightInfo for () {
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().writes(4 as Weight))
}
fn set_calls(n: u32, ) -> Weight {
(15_015_000 as Weight)
// Standard Error: 5_000
.saturating_add((301_000 as Weight).saturating_mul(n as Weight))
(15_549_000 as Weight)
// Standard Error: 7_000
.saturating_add((281_000 as Weight).saturating_mul(n as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as 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().writes(3 as 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().writes(1 as 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().writes(4 as 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().writes(5 as Weight))
}
Expand Down
52 changes: 28 additions & 24 deletions frame/system/src/weights.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

//! Autogenerated weights for frame_system
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0
//! DATE: 2021-06-19, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2021-07-20, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128

// Executed Command:
Expand Down Expand Up @@ -56,78 +56,82 @@ pub trait WeightInfo {
/// Weights for frame_system using the Substrate node and recommended hardware.
pub struct SubstrateWeight<T>(PhantomData<T>);
impl<T: crate::Config> WeightInfo for SubstrateWeight<T> {
fn remark(_b: u32, ) -> Weight {
(1_038_000 as Weight)
fn remark(b: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 0
.saturating_add((1_000 as Weight).saturating_mul(b as Weight))
}
fn remark_with_event(b: u32, ) -> Weight {
(5_246_000 as Weight)
(16_569_000 as Weight)
// Standard Error: 0
.saturating_add((1_000 as Weight).saturating_mul(b as Weight))
.saturating_add((2_000 as Weight).saturating_mul(b as 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))
}
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().writes(2 as Weight))
}
fn set_storage(i: u32, ) -> Weight {
(0 as Weight)
// 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)))
}
fn kill_storage(i: u32, ) -> Weight {
(2_278_000 as Weight)
(4_216_000 as Weight)
// 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)))
}
fn kill_prefix(p: u32, ) -> Weight {
(8_243_000 as Weight)
(14_558_000 as Weight)
// 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)))
}
}

// For backwards compatibility and tests
impl WeightInfo for () {
fn remark(_b: u32, ) -> Weight {
(1_038_000 as Weight)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

interesting the weight is now only factor of message length

fn remark(b: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 0
.saturating_add((1_000 as Weight).saturating_mul(b as Weight))
}
fn remark_with_event(b: u32, ) -> Weight {
(5_246_000 as Weight)
(16_569_000 as Weight)
// Standard Error: 0
.saturating_add((1_000 as Weight).saturating_mul(b as Weight))
.saturating_add((2_000 as Weight).saturating_mul(b as Weight))
}
fn set_heap_pages() -> Weight {
(1_586_000 as Weight)
(1_783_000 as Weight)
.saturating_add(RocksDbWeight::get().writes(1 as 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().writes(2 as Weight))
}
fn set_storage(i: u32, ) -> Weight {
(0 as Weight)
// 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)))
}
fn kill_storage(i: u32, ) -> Weight {
(2_278_000 as Weight)
(4_216_000 as Weight)
// 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)))
}
fn kill_prefix(p: u32, ) -> Weight {
(8_243_000 as Weight)
(14_558_000 as Weight)
// 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)))
}
}
32 changes: 16 additions & 16 deletions frame/utility/src/weights.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@

//! Autogenerated weights for pallet_utility
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0
//! DATE: 2021-06-19, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2021-07-14, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128

// Executed Command:
Expand Down Expand Up @@ -53,33 +53,33 @@ pub trait WeightInfo {
pub struct SubstrateWeight<T>(PhantomData<T>);
impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
fn batch(c: u32, ) -> Weight {
(14_618_000 as Weight)
// Standard Error: 0
.saturating_add((610_000 as Weight).saturating_mul(c as Weight))
(20_779_000 as Weight)
// Standard Error: 1_000
.saturating_add((1_080_000 as Weight).saturating_mul(c as Weight))
}
fn as_derivative() -> Weight {
(3_175_000 as Weight)
(3_994_000 as Weight)
}
fn batch_all(c: u32, ) -> Weight {
(14_561_000 as Weight)
// Standard Error: 0
.saturating_add((1_013_000 as Weight).saturating_mul(c as Weight))
(22_183_000 as Weight)
// Standard Error: 1_000
.saturating_add((1_506_000 as Weight).saturating_mul(c as Weight))
}
}

// For backwards compatibility and tests
impl WeightInfo for () {
fn batch(c: u32, ) -> Weight {
(14_618_000 as Weight)
// Standard Error: 0
.saturating_add((610_000 as Weight).saturating_mul(c as Weight))
(20_779_000 as Weight)
// Standard Error: 1_000
.saturating_add((1_080_000 as Weight).saturating_mul(c as Weight))
}
fn as_derivative() -> Weight {
(3_175_000 as Weight)
(3_994_000 as Weight)
}
fn batch_all(c: u32, ) -> Weight {
(14_561_000 as Weight)
// Standard Error: 0
.saturating_add((1_013_000 as Weight).saturating_mul(c as Weight))
(22_183_000 as Weight)
// Standard Error: 1_000
.saturating_add((1_506_000 as Weight).saturating_mul(c as Weight))
}
}