From 6ebfde685eb3a030fab7cf98099693778494f05d Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Tue, 25 May 2021 23:51:58 -0400 Subject: [PATCH 01/10] unused mmr --- frame/merkle-mountain-range/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frame/merkle-mountain-range/src/lib.rs b/frame/merkle-mountain-range/src/lib.rs index 6992341f6bbd1..a8e707c7ac4e0 100644 --- a/frame/merkle-mountain-range/src/lib.rs +++ b/frame/merkle-mountain-range/src/lib.rs @@ -154,7 +154,7 @@ decl_storage! { decl_module! { /// A public part of the pallet. pub struct Module, I: Instance = DefaultInstance> for enum Call where origin: T::Origin { - fn on_initialize(n: T::BlockNumber) -> Weight { + fn on_initialize(_n: T::BlockNumber) -> Weight { use primitives::LeafDataProvider; let leaves = Self::mmr_leaves(); let peaks_before = mmr::utils::NodesUtils::new(leaves).number_of_peaks(); From fadc6294f4668b7d5f8a95b23018704937276963 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Wed, 26 May 2021 00:00:36 -0400 Subject: [PATCH 02/10] more unused --- frame/utility/src/tests.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frame/utility/src/tests.rs b/frame/utility/src/tests.rs index 1828418bd7fb8..6d9db2f0c612a 100644 --- a/frame/utility/src/tests.rs +++ b/frame/utility/src/tests.rs @@ -41,14 +41,14 @@ pub mod example { decl_module! { pub struct Module for enum Call where origin: ::Origin { - #[weight = *weight] - fn noop(_origin, weight: Weight) { } + #[weight = *_weight] + fn noop(_origin, _weight: Weight) { } - #[weight = *start_weight] + #[weight = *_start_weight] fn foobar( origin, err: bool, - start_weight: Weight, + _start_weight: Weight, end_weight: Option, ) -> DispatchResultWithPostInfo { let _ = ensure_signed(origin)?; From fe54c323d0581860f7de0b9bf7ed8d4c6cc3452c Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Wed, 26 May 2021 00:21:13 -0400 Subject: [PATCH 03/10] dyn in executor --- client/executor/src/wasm_runtime.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/executor/src/wasm_runtime.rs b/client/executor/src/wasm_runtime.rs index 23e88f9440907..6c13150613d6a 100644 --- a/client/executor/src/wasm_runtime.rs +++ b/client/executor/src/wasm_runtime.rs @@ -492,7 +492,7 @@ mod tests { authoring_version: 1, spec_version: 1, impl_version: 1, - apis: sp_api::create_apis_vec!([(Core::::ID, 1)]), + apis: sp_api::create_apis_vec!([(>::ID, 1)]), }; let version = decode_version(&old_runtime_version.encode()).unwrap(); @@ -507,7 +507,7 @@ mod tests { authoring_version: 1, spec_version: 1, impl_version: 1, - apis: sp_api::create_apis_vec!([(Core::::ID, 3)]), + apis: sp_api::create_apis_vec!([(>::ID, 3)]), }; decode_version(&old_runtime_version.encode()).unwrap_err(); @@ -521,7 +521,7 @@ mod tests { authoring_version: 1, spec_version: 1, impl_version: 1, - apis: sp_api::create_apis_vec!([(Core::::ID, 3)]), + apis: sp_api::create_apis_vec!([(>::ID, 3)]), transaction_version: 3, }; From 6323cacd2ae60991d05a035bb330383863c76320 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Wed, 26 May 2021 00:47:59 -0400 Subject: [PATCH 04/10] remove `doc(inline)` --- frame/support/src/lib.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/frame/support/src/lib.rs b/frame/support/src/lib.rs index 911373bfad450..edbc69df26b74 100644 --- a/frame/support/src/lib.rs +++ b/frame/support/src/lib.rs @@ -397,7 +397,6 @@ macro_rules! parameter_types { } #[cfg(not(feature = "std"))] -#[doc(inline)] #[macro_export] macro_rules! parameter_types_impl_thread_local { ( $( $any:tt )* ) => { @@ -406,7 +405,6 @@ macro_rules! parameter_types_impl_thread_local { } #[cfg(feature = "std")] -#[doc(inline)] #[macro_export] macro_rules! parameter_types_impl_thread_local { ( From 91546ed2d57e7cc3cf85cebf342e6afc31456aa4 Mon Sep 17 00:00:00 2001 From: adoerr <0xad@gmx.net> Date: Wed, 26 May 2021 07:20:26 +0200 Subject: [PATCH 05/10] fix dyn for sp-api-test --- primitives/api/test/tests/decl_and_impl.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/primitives/api/test/tests/decl_and_impl.rs b/primitives/api/test/tests/decl_and_impl.rs index 1f7ccf2712d63..54fb37133f468 100644 --- a/primitives/api/test/tests/decl_and_impl.rs +++ b/primitives/api/test/tests/decl_and_impl.rs @@ -156,19 +156,19 @@ fn test_client_side_function_signature() { #[test] fn check_runtime_api_info() { - assert_eq!(&Api::::ID, &runtime_decl_for_Api::ID); - assert_eq!(Api::::VERSION, runtime_decl_for_Api::VERSION); - assert_eq!(Api::::VERSION, 1); + assert_eq!(&>::ID, &runtime_decl_for_Api::ID); + assert_eq!(>::VERSION, runtime_decl_for_Api::VERSION); + assert_eq!(>::VERSION, 1); assert_eq!( - ApiWithCustomVersion::::VERSION, + >::VERSION, runtime_decl_for_ApiWithCustomVersion::VERSION, ); assert_eq!( - &ApiWithCustomVersion::::ID, + &>::ID, &runtime_decl_for_ApiWithCustomVersion::ID, ); - assert_eq!(ApiWithCustomVersion::::VERSION, 2); + assert_eq!(>::VERSION, 2); } fn check_runtime_api_versions_contains() { From 077a39305856ef896ad645a5d7d83ca370f4dac2 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Wed, 26 May 2021 02:59:18 -0400 Subject: [PATCH 06/10] update benchmarks --- primitives/core/benches/bench.rs | 113 +++++++++++++++++++++---------- 1 file changed, 78 insertions(+), 35 deletions(-) diff --git a/primitives/core/benches/bench.rs b/primitives/core/benches/bench.rs index d7c127320f567..71718c901750b 100644 --- a/primitives/core/benches/bench.rs +++ b/primitives/core/benches/bench.rs @@ -12,13 +12,10 @@ // See the License for the specific language governing permissions and // limitations under the License. - - #[macro_use] extern crate criterion; -use criterion::{Criterion, black_box, Bencher, Fun}; -use std::time::Duration; +use criterion::{Criterion, black_box, Bencher, BenchmarkId}; use sp_core::crypto::Pair as _; use sp_core::hashing::{twox_128, blake2_128}; @@ -49,87 +46,133 @@ fn bench_twox_128(b: &mut Bencher, key: &Vec) { } fn bench_hash_128_fix_size(c: &mut Criterion) { + let mut group = c.benchmark_group("fix size hashing"); + let key = get_key(MAX_KEY_SIZE); - let blake_fn = Fun::new("blake2_128", bench_blake2_128); - let twox_fn = Fun::new("twox_128", bench_twox_128); - let fns = vec![blake_fn, twox_fn]; - c.bench_functions("fixed size hashing", fns, key); + group.bench_with_input("blake2_128", &key, bench_blake2_128); + group.bench_with_input("twox_128", &key, bench_twox_128); + + group.finish(); } fn bench_hash_128_dyn_size(c: &mut Criterion) { - let mut keys = Vec::new(); + let mut group = c.benchmark_group("dyn size hashing"); + for i in (2..MAX_KEY_SIZE).step_by(4) { - keys.push(get_key(i).clone()) + let key = get_key(i); + + group.bench_with_input( + BenchmarkId::new("blake2_128", format!("{}", i)), + &key, + bench_blake2_128, + ); + group.bench_with_input( + BenchmarkId::new("twox_128", format!("{}", i)), + &key, + bench_twox_128, + ); } - c.bench_function_over_inputs("dyn size hashing - blake2", |b, key| bench_blake2_128(b, &key), keys.clone()); - c.bench_function_over_inputs("dyn size hashing - twox", |b, key| bench_twox_128(b, &key), keys); + group.finish(); } fn bench_ed25519(c: &mut Criterion) { - c.bench_function_over_inputs("signing - ed25519", |b, &msg_size| { + let mut group = c.benchmark_group("ed25519"); + + for msg_size in vec![32, 1024, 1024 * 1024] { let msg = (0..msg_size) .map(|_| rand::random::()) .collect::>(); let key = sp_core::ed25519::Pair::generate().0; - b.iter(|| key.sign(&msg)) - }, vec![32, 1024, 1024 * 1024]); + group.bench_function( + BenchmarkId::new("signing", format!("{}", msg_size)), + |b| b.iter(|| key.sign(&msg)), + ); + } - c.bench_function_over_inputs("verifying - ed25519", |b, &msg_size| { + for msg_size in vec![32, 1024, 1024 * 1024] { let msg = (0..msg_size) .map(|_| rand::random::()) .collect::>(); let key = sp_core::ed25519::Pair::generate().0; let sig = key.sign(&msg); let public = key.public(); - b.iter(|| sp_core::ed25519::Pair::verify(&sig, &msg, &public)) - }, vec![32, 1024, 1024 * 1024]); + group.bench_function( + BenchmarkId::new("verifying", format!("{}", msg_size)), + |b| b.iter(|| sp_core::ed25519::Pair::verify(&sig, &msg, &public)), + ); + } + + group.finish(); } fn bench_sr25519(c: &mut Criterion) { - c.bench_function_over_inputs("signing - sr25519", |b, &msg_size| { + let mut group = c.benchmark_group("ed25519"); + + for msg_size in vec![32, 1024, 1024 * 1024] { let msg = (0..msg_size) .map(|_| rand::random::()) .collect::>(); let key = sp_core::sr25519::Pair::generate().0; - b.iter(|| key.sign(&msg)) - }, vec![32, 1024, 1024 * 1024]); + group.bench_function( + BenchmarkId::new("signing", format!("{}", msg_size)), + |b| b.iter(|| key.sign(&msg)), + ); + } - c.bench_function_over_inputs("verifying - sr25519", |b, &msg_size| { + for msg_size in vec![32, 1024, 1024 * 1024] { let msg = (0..msg_size) .map(|_| rand::random::()) .collect::>(); let key = sp_core::sr25519::Pair::generate().0; let sig = key.sign(&msg); let public = key.public(); - b.iter(|| sp_core::sr25519::Pair::verify(&sig, &msg, &public)) - }, vec![32, 1024, 1024 * 1024]); + group.bench_function( + BenchmarkId::new("verifying", format!("{}", msg_size)), + |b| b.iter(|| sp_core::sr25519::Pair::verify(&sig, &msg, &public)), + ); + } + + group.finish(); } fn bench_ecdsa(c: &mut Criterion) { - c.bench_function_over_inputs("signing - ecdsa", |b, &msg_size| { + let mut group = c.benchmark_group("ed25519"); + + for msg_size in vec![32, 1024, 1024 * 1024] { let msg = (0..msg_size) .map(|_| rand::random::()) .collect::>(); let key = sp_core::ecdsa::Pair::generate().0; - b.iter(|| key.sign(&msg)) - }, vec![32, 1024, 1024 * 1024]); + group.bench_function( + BenchmarkId::new("signing", format!("{}", msg_size)), + |b| b.iter(|| key.sign(&msg)), + ); + } - c.bench_function_over_inputs("verifying - ecdsa", |b, &msg_size| { + for msg_size in vec![32, 1024, 1024 * 1024] { let msg = (0..msg_size) .map(|_| rand::random::()) .collect::>(); let key = sp_core::ecdsa::Pair::generate().0; let sig = key.sign(&msg); let public = key.public(); - b.iter(|| sp_core::ecdsa::Pair::verify(&sig, &msg, &public)) - }, vec![32, 1024, 1024 * 1024]); -} + group.bench_function( + BenchmarkId::new("verifying", format!("{}", msg_size)), + |b| b.iter(|| sp_core::ecdsa::Pair::verify(&sig, &msg, &public)), + ); + } -criterion_group!{ - name = benches; - config = Criterion::default().warm_up_time(Duration::from_millis(500)).without_plots(); - targets = bench_hash_128_fix_size, bench_hash_128_dyn_size, bench_ed25519, bench_sr25519, bench_ecdsa + group.finish(); } + +criterion_group!( + benches, + bench_hash_128_fix_size, + bench_hash_128_dyn_size, + bench_ed25519, + bench_sr25519, + bench_ecdsa, +); criterion_main!(benches); From d00b14ac248645fff948ab6609645c38e1489cdb Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Wed, 26 May 2021 03:11:10 -0400 Subject: [PATCH 07/10] Update primitives/core/benches/bench.rs --- primitives/core/benches/bench.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/primitives/core/benches/bench.rs b/primitives/core/benches/bench.rs index 71718c901750b..fc4d0a36277c6 100644 --- a/primitives/core/benches/bench.rs +++ b/primitives/core/benches/bench.rs @@ -108,7 +108,7 @@ fn bench_ed25519(c: &mut Criterion) { } fn bench_sr25519(c: &mut Criterion) { - let mut group = c.benchmark_group("ed25519"); + let mut group = c.benchmark_group("sr25519"); for msg_size in vec![32, 1024, 1024 * 1024] { let msg = (0..msg_size) From 2b6d5c964f7f1c8d3d04a256a956bd16c1e2b2a6 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Wed, 26 May 2021 03:11:35 -0400 Subject: [PATCH 08/10] Update primitives/core/benches/bench.rs --- primitives/core/benches/bench.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/primitives/core/benches/bench.rs b/primitives/core/benches/bench.rs index fc4d0a36277c6..77680d53be6c4 100644 --- a/primitives/core/benches/bench.rs +++ b/primitives/core/benches/bench.rs @@ -138,7 +138,7 @@ fn bench_sr25519(c: &mut Criterion) { } fn bench_ecdsa(c: &mut Criterion) { - let mut group = c.benchmark_group("ed25519"); + let mut group = c.benchmark_group("ecdsa"); for msg_size in vec![32, 1024, 1024 * 1024] { let msg = (0..msg_size) From 140b5c2ecd2a6fa5a3f1e0fdcd7dd54b531d9b3f Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Wed, 26 May 2021 03:43:07 -0400 Subject: [PATCH 09/10] update another bench --- bin/node/executor/benches/bench.rs | 101 +++++++++++++++-------------- 1 file changed, 52 insertions(+), 49 deletions(-) diff --git a/bin/node/executor/benches/bench.rs b/bin/node/executor/benches/bench.rs index 554e6c4af428d..1c1387302c85a 100644 --- a/bin/node/executor/benches/bench.rs +++ b/bin/node/executor/benches/bench.rs @@ -139,7 +139,6 @@ fn construct_block( (Block { header, extrinsics }.encode(), hash.into()) } - fn test_blocks(genesis_config: &GenesisConfig, executor: &NativeExecutor) -> Vec<(Vec, Hash)> { @@ -168,52 +167,56 @@ fn test_blocks(genesis_config: &GenesisConfig, executor: &NativeExecutor (true, WasmExecutionMethod::Interpreted), - ExecutionMethod::Wasm(wasm_method) => (false, *wasm_method), - }; - - let executor = NativeExecutor::new(wasm_method, None, 8); - let runtime_code = RuntimeCode { - code_fetcher: &sp_core::traits::WrappedRuntimeCode(compact_code_unwrap().into()), - hash: vec![1, 2, 3], - heap_pages: None, - }; - - // Get the runtime version to initialize the runtimes cache. - { - let mut test_ext = new_test_ext(&genesis_config); - executor.runtime_version(&mut test_ext.ext(), &runtime_code).unwrap(); - } - - let blocks = test_blocks(&genesis_config, &executor); - - b.iter_batched_ref( - || new_test_ext(&genesis_config), - |test_ext| { - for block in blocks.iter() { - executor.call:: _>( - &mut test_ext.ext(), - &runtime_code, - "Core_execute_block", - &block.0, - use_native, - None, - ).0.unwrap(); - } - }, - BatchSize::LargeInput, - ); - }, - vec![ - ExecutionMethod::Native, - ExecutionMethod::Wasm(WasmExecutionMethod::Interpreted), - #[cfg(feature = "wasmtime")] - ExecutionMethod::Wasm(WasmExecutionMethod::Compiled), - ], - ); + let mut group = c.benchmark_group("execute blocks"); + let execution_methods = vec![ + ExecutionMethod::Native, + ExecutionMethod::Wasm(WasmExecutionMethod::Interpreted), + #[cfg(feature = "wasmtime")] + ExecutionMethod::Wasm(WasmExecutionMethod::Compiled), + ]; + + for strategy in execution_methods { + group.bench_function( + format!("{:?}", strategy), + |b| { + let genesis_config = node_testing::genesis::config(false, Some(compact_code_unwrap())); + let (use_native, wasm_method) = match strategy { + ExecutionMethod::Native => (true, WasmExecutionMethod::Interpreted), + ExecutionMethod::Wasm(wasm_method) => (false, wasm_method), + }; + + let executor = NativeExecutor::new(wasm_method, None, 8); + let runtime_code = RuntimeCode { + code_fetcher: &sp_core::traits::WrappedRuntimeCode(compact_code_unwrap().into()), + hash: vec![1, 2, 3], + heap_pages: None, + }; + + // Get the runtime version to initialize the runtimes cache. + { + let mut test_ext = new_test_ext(&genesis_config); + executor.runtime_version(&mut test_ext.ext(), &runtime_code).unwrap(); + } + + let blocks = test_blocks(&genesis_config, &executor); + + b.iter_batched_ref( + || new_test_ext(&genesis_config), + |test_ext| { + for block in blocks.iter() { + executor.call:: _>( + &mut test_ext.ext(), + &runtime_code, + "Core_execute_block", + &block.0, + use_native, + None, + ).0.unwrap(); + } + }, + BatchSize::LargeInput, + ); + }, + ); + } } From 3479842559693516724968010dd25b3e86c50835 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Wed, 26 May 2021 03:58:48 -0400 Subject: [PATCH 10/10] fix benchmark? --- bin/node/executor/benches/bench.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/node/executor/benches/bench.rs b/bin/node/executor/benches/bench.rs index 1c1387302c85a..d21aedd1d1849 100644 --- a/bin/node/executor/benches/bench.rs +++ b/bin/node/executor/benches/bench.rs @@ -146,7 +146,7 @@ fn test_blocks(genesis_config: &GenesisConfig, executor: &NativeExecutor