From df1aed01c49771a31123f233ce96365d46b136bc Mon Sep 17 00:00:00 2001 From: Svyatoslav Nikolsky Date: Thu, 22 Dec 2022 08:53:26 +0300 Subject: [PATCH] Updated db weights and some experiments (#1732) * updated weights * also fix off-by-one in benchmarks --- bridges/modules/grandpa/src/weights.rs | 18 ++++---- bridges/modules/messages/src/weights.rs | 42 +++++++++---------- .../modules/parachains/src/benchmarking.rs | 7 +++- bridges/modules/parachains/src/weights.rs | 30 ++++++------- bridges/modules/relayers/src/weights.rs | 6 +-- 5 files changed, 52 insertions(+), 51 deletions(-) diff --git a/bridges/modules/grandpa/src/weights.rs b/bridges/modules/grandpa/src/weights.rs index 6997713face5..d6c3d596d88e 100644 --- a/bridges/modules/grandpa/src/weights.rs +++ b/bridges/modules/grandpa/src/weights.rs @@ -17,7 +17,7 @@ //! Autogenerated weights for `pallet_bridge_grandpa` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-11-17, STEPS: 50, REPEAT: 20 +//! DATE: 2022-12-21, STEPS: 50, REPEAT: 20 //! LOW RANGE: [], HIGH RANGE: [] //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled //! CHAIN: Some("dev"), DB CACHE: 1024 @@ -59,10 +59,10 @@ pub trait WeightInfo { pub struct BridgeWeight(PhantomData); impl WeightInfo for BridgeWeight { fn submit_finality_proof(p: u32, v: u32) -> Weight { - Weight::from_ref_time(198_274_668 as u64) - .saturating_add(Weight::from_ref_time(39_830_948 as u64).saturating_mul(p as u64)) - .saturating_add(Weight::from_ref_time(1_535_681 as u64).saturating_mul(v as u64)) - .saturating_add(T::DbWeight::get().reads(7 as u64)) + Weight::from_ref_time(192_130_822 as u64) + .saturating_add(Weight::from_ref_time(39_781_096 as u64).saturating_mul(p as u64)) + .saturating_add(Weight::from_ref_time(1_365_108 as u64).saturating_mul(v as u64)) + .saturating_add(T::DbWeight::get().reads(6 as u64)) .saturating_add(T::DbWeight::get().writes(6 as u64)) } } @@ -70,10 +70,10 @@ impl WeightInfo for BridgeWeight { // For backwards compatibility and tests impl WeightInfo for () { fn submit_finality_proof(p: u32, v: u32) -> Weight { - Weight::from_ref_time(198_274_668 as u64) - .saturating_add(Weight::from_ref_time(39_830_948 as u64).saturating_mul(p as u64)) - .saturating_add(Weight::from_ref_time(1_535_681 as u64).saturating_mul(v as u64)) - .saturating_add(RocksDbWeight::get().reads(7 as u64)) + Weight::from_ref_time(192_130_822 as u64) + .saturating_add(Weight::from_ref_time(39_781_096 as u64).saturating_mul(p as u64)) + .saturating_add(Weight::from_ref_time(1_365_108 as u64).saturating_mul(v as u64)) + .saturating_add(RocksDbWeight::get().reads(6 as u64)) .saturating_add(RocksDbWeight::get().writes(6 as u64)) } } diff --git a/bridges/modules/messages/src/weights.rs b/bridges/modules/messages/src/weights.rs index 834e0d1f3d64..69fad6051d5d 100644 --- a/bridges/modules/messages/src/weights.rs +++ b/bridges/modules/messages/src/weights.rs @@ -17,7 +17,7 @@ //! Autogenerated weights for `pallet_bridge_messages` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-11-17, STEPS: 50, REPEAT: 20 +//! DATE: 2022-12-21, STEPS: 50, REPEAT: 20 //! LOW RANGE: [], HIGH RANGE: [] //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled //! CHAIN: Some("dev"), DB CACHE: 1024 @@ -66,87 +66,87 @@ pub trait WeightInfo { pub struct BridgeWeight(PhantomData); impl WeightInfo for BridgeWeight { fn receive_single_message_proof() -> Weight { - Weight::from_ref_time(50_596_000 as u64) + Weight::from_ref_time(60_148_000 as u64) .saturating_add(T::DbWeight::get().reads(4 as u64)) .saturating_add(T::DbWeight::get().writes(2 as u64)) } fn receive_two_messages_proof() -> Weight { - Weight::from_ref_time(77_041_000 as u64) + Weight::from_ref_time(71_836_000 as u64) .saturating_add(T::DbWeight::get().reads(4 as u64)) .saturating_add(T::DbWeight::get().writes(2 as u64)) } fn receive_single_message_proof_with_outbound_lane_state() -> Weight { - Weight::from_ref_time(58_331_000 as u64) + Weight::from_ref_time(66_845_000 as u64) .saturating_add(T::DbWeight::get().reads(4 as u64)) .saturating_add(T::DbWeight::get().writes(2 as u64)) } fn receive_single_message_proof_1_kb() -> Weight { - Weight::from_ref_time(48_061_000 as u64) + Weight::from_ref_time(69_696_000 as u64) .saturating_add(T::DbWeight::get().reads(3 as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) } fn receive_single_message_proof_16_kb() -> Weight { - Weight::from_ref_time(101_601_000 as u64) + Weight::from_ref_time(123_646_000 as u64) .saturating_add(T::DbWeight::get().reads(3 as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) } fn receive_delivery_proof_for_single_message() -> Weight { - Weight::from_ref_time(55_108_000 as u64) + Weight::from_ref_time(53_723_000 as u64) .saturating_add(T::DbWeight::get().reads(4 as u64)) .saturating_add(T::DbWeight::get().writes(2 as u64)) } fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight { - Weight::from_ref_time(53_917_000 as u64) + Weight::from_ref_time(54_617_000 as u64) .saturating_add(T::DbWeight::get().reads(4 as u64)) .saturating_add(T::DbWeight::get().writes(2 as u64)) } fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight { - Weight::from_ref_time(57_335_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + Weight::from_ref_time(53_582_000 as u64) + .saturating_add(T::DbWeight::get().reads(4 as u64)) + .saturating_add(T::DbWeight::get().writes(2 as u64)) } } // For backwards compatibility and tests impl WeightInfo for () { fn receive_single_message_proof() -> Weight { - Weight::from_ref_time(50_596_000 as u64) + Weight::from_ref_time(60_148_000 as u64) .saturating_add(RocksDbWeight::get().reads(4 as u64)) .saturating_add(RocksDbWeight::get().writes(2 as u64)) } fn receive_two_messages_proof() -> Weight { - Weight::from_ref_time(77_041_000 as u64) + Weight::from_ref_time(71_836_000 as u64) .saturating_add(RocksDbWeight::get().reads(4 as u64)) .saturating_add(RocksDbWeight::get().writes(2 as u64)) } fn receive_single_message_proof_with_outbound_lane_state() -> Weight { - Weight::from_ref_time(58_331_000 as u64) + Weight::from_ref_time(66_845_000 as u64) .saturating_add(RocksDbWeight::get().reads(4 as u64)) .saturating_add(RocksDbWeight::get().writes(2 as u64)) } fn receive_single_message_proof_1_kb() -> Weight { - Weight::from_ref_time(48_061_000 as u64) + Weight::from_ref_time(69_696_000 as u64) .saturating_add(RocksDbWeight::get().reads(3 as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } fn receive_single_message_proof_16_kb() -> Weight { - Weight::from_ref_time(101_601_000 as u64) + Weight::from_ref_time(123_646_000 as u64) .saturating_add(RocksDbWeight::get().reads(3 as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } fn receive_delivery_proof_for_single_message() -> Weight { - Weight::from_ref_time(55_108_000 as u64) + Weight::from_ref_time(53_723_000 as u64) .saturating_add(RocksDbWeight::get().reads(4 as u64)) .saturating_add(RocksDbWeight::get().writes(2 as u64)) } fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight { - Weight::from_ref_time(53_917_000 as u64) + Weight::from_ref_time(54_617_000 as u64) .saturating_add(RocksDbWeight::get().reads(4 as u64)) .saturating_add(RocksDbWeight::get().writes(2 as u64)) } fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight { - Weight::from_ref_time(57_335_000 as u64) - .saturating_add(RocksDbWeight::get().reads(5 as u64)) - .saturating_add(RocksDbWeight::get().writes(3 as u64)) + Weight::from_ref_time(53_582_000 as u64) + .saturating_add(RocksDbWeight::get().reads(4 as u64)) + .saturating_add(RocksDbWeight::get().writes(2 as u64)) } } diff --git a/bridges/modules/parachains/src/benchmarking.rs b/bridges/modules/parachains/src/benchmarking.rs index 29e48132890a..b156b724afeb 100644 --- a/bridges/modules/parachains/src/benchmarking.rs +++ b/bridges/modules/parachains/src/benchmarking.rs @@ -59,7 +59,12 @@ benchmarks_instance_pallet! { let sender = account("sender", 0, 0); let mut parachains = T::parachains(); - let _ = parachains.split_off(p as usize - 1); + let _ = if p <= parachains.len() as u32 { + parachains.split_off(p as usize) + } else { + Default::default() + }; + log::trace!(target: crate::LOG_TARGET, "=== {:?}", parachains.len()); let (relay_block_number, relay_block_hash, parachain_heads_proof, parachains_heads) = T::prepare_parachain_heads_proof( ¶chains, DEFAULT_PARACHAIN_HEAD_SIZE, diff --git a/bridges/modules/parachains/src/weights.rs b/bridges/modules/parachains/src/weights.rs index 5c9206d0ca0a..54f468b7636c 100644 --- a/bridges/modules/parachains/src/weights.rs +++ b/bridges/modules/parachains/src/weights.rs @@ -17,7 +17,7 @@ //! Autogenerated weights for `pallet_bridge_parachains` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-11-17, STEPS: 50, REPEAT: 20 +//! DATE: 2022-12-21, STEPS: 50, REPEAT: 20 //! LOW RANGE: [], HIGH RANGE: [] //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled //! CHAIN: Some("dev"), DB CACHE: 1024 @@ -60,20 +60,18 @@ pub trait WeightInfo { /// Those weights are test only and must never be used in production. pub struct BridgeWeight(PhantomData); impl WeightInfo for BridgeWeight { - fn submit_parachain_heads_with_n_parachains(p: u32) -> Weight { - Weight::from_ref_time(51_173_000 as u64) - .saturating_add(Weight::from_ref_time(24_495_968 as u64).saturating_mul(p as u64)) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().reads((2 as u64).saturating_mul(p as u64))) - .saturating_add(T::DbWeight::get().writes((3 as u64).saturating_mul(p as u64))) + fn submit_parachain_heads_with_n_parachains(_p: u32) -> Weight { + Weight::from_ref_time(52_445_014 as u64) + .saturating_add(T::DbWeight::get().reads(4 as u64)) + .saturating_add(T::DbWeight::get().writes(3 as u64)) } fn submit_parachain_heads_with_1kb_proof() -> Weight { - Weight::from_ref_time(58_175_000 as u64) + Weight::from_ref_time(55_253_000 as u64) .saturating_add(T::DbWeight::get().reads(4 as u64)) .saturating_add(T::DbWeight::get().writes(3 as u64)) } fn submit_parachain_heads_with_16kb_proof() -> Weight { - Weight::from_ref_time(101_796_000 as u64) + Weight::from_ref_time(98_772_000 as u64) .saturating_add(T::DbWeight::get().reads(4 as u64)) .saturating_add(T::DbWeight::get().writes(3 as u64)) } @@ -81,20 +79,18 @@ impl WeightInfo for BridgeWeight { // For backwards compatibility and tests impl WeightInfo for () { - fn submit_parachain_heads_with_n_parachains(p: u32) -> Weight { - Weight::from_ref_time(51_173_000 as u64) - .saturating_add(Weight::from_ref_time(24_495_968 as u64).saturating_mul(p as u64)) - .saturating_add(RocksDbWeight::get().reads(2 as u64)) - .saturating_add(RocksDbWeight::get().reads((2 as u64).saturating_mul(p as u64))) - .saturating_add(RocksDbWeight::get().writes((3 as u64).saturating_mul(p as u64))) + fn submit_parachain_heads_with_n_parachains(_p: u32) -> Weight { + Weight::from_ref_time(52_445_014 as u64) + .saturating_add(RocksDbWeight::get().reads(4 as u64)) + .saturating_add(RocksDbWeight::get().writes(3 as u64)) } fn submit_parachain_heads_with_1kb_proof() -> Weight { - Weight::from_ref_time(58_175_000 as u64) + Weight::from_ref_time(55_253_000 as u64) .saturating_add(RocksDbWeight::get().reads(4 as u64)) .saturating_add(RocksDbWeight::get().writes(3 as u64)) } fn submit_parachain_heads_with_16kb_proof() -> Weight { - Weight::from_ref_time(101_796_000 as u64) + Weight::from_ref_time(98_772_000 as u64) .saturating_add(RocksDbWeight::get().reads(4 as u64)) .saturating_add(RocksDbWeight::get().writes(3 as u64)) } diff --git a/bridges/modules/relayers/src/weights.rs b/bridges/modules/relayers/src/weights.rs index 26a1cfab1e4d..9bbaa343e120 100644 --- a/bridges/modules/relayers/src/weights.rs +++ b/bridges/modules/relayers/src/weights.rs @@ -17,7 +17,7 @@ //! Autogenerated weights for `pallet_bridge_relayers` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-05, STEPS: 50, REPEAT: 20 +//! DATE: 2022-12-21, STEPS: 50, REPEAT: 20 //! LOW RANGE: [], HIGH RANGE: [] //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled //! CHAIN: Some("dev"), DB CACHE: 1024 @@ -59,7 +59,7 @@ pub trait WeightInfo { pub struct BridgeWeight(PhantomData); impl WeightInfo for BridgeWeight { fn claim_rewards() -> Weight { - Weight::from_ref_time(64_065_000 as u64) + Weight::from_ref_time(64_832_000 as u64) .saturating_add(T::DbWeight::get().reads(2 as u64)) .saturating_add(T::DbWeight::get().writes(2 as u64)) } @@ -68,7 +68,7 @@ impl WeightInfo for BridgeWeight { // For backwards compatibility and tests impl WeightInfo for () { fn claim_rewards() -> Weight { - Weight::from_ref_time(64_065_000 as u64) + Weight::from_ref_time(64_832_000 as u64) .saturating_add(RocksDbWeight::get().reads(2 as u64)) .saturating_add(RocksDbWeight::get().writes(2 as u64)) }