From 9ab00b15b2e98d008822fe6addaaad148f513bea Mon Sep 17 00:00:00 2001 From: Maksym H <1177472+mordamax@users.noreply.github.com> Date: Tue, 28 Jan 2025 19:32:46 +0000 Subject: [PATCH] remove old bench & revert the frame-weight-template (#7362) - remove old bench from cmd.py and left alias for backward compatibility - reverted the frame-wight-template as the problem was that it umbrella template wasn't picked correctly in the old benchmarks, in frame-omni-bench it correctly identifies the dependencies and uses correct template --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .github/scripts/cmd/cmd.py | 195 ++---------------- .github/workflows/runtimes-matrix.json | 28 --- substrate/.maintain/frame-weight-template.hbs | 3 +- substrate/frame/multisig/src/weights.rs | 179 ++++++++-------- 4 files changed, 110 insertions(+), 295 deletions(-) diff --git a/.github/scripts/cmd/cmd.py b/.github/scripts/cmd/cmd.py index 2c017b7d0c3..79442b682e5 100755 --- a/.github/scripts/cmd/cmd.py +++ b/.github/scripts/cmd/cmd.py @@ -44,34 +44,6 @@ setup_logging() BENCH """ -bench_example = '''**Examples**: - Runs all benchmarks - %(prog)s - - Runs benchmarks for pallet_balances and pallet_multisig for all runtimes which have these pallets. **--quiet** makes it to output nothing to PR but reactions - %(prog)s --pallet pallet_balances pallet_xcm_benchmarks::generic --quiet - - Runs bench for all pallets for westend runtime and fails fast on first failed benchmark - %(prog)s --runtime westend --fail-fast - - Does not output anything and cleans up the previous bot's & author command triggering comments in PR - %(prog)s --runtime westend rococo --pallet pallet_balances pallet_multisig --quiet --clean -''' - -parser_bench = subparsers.add_parser('bench', help='Runs benchmarks (old CLI)', epilog=bench_example, formatter_class=argparse.RawDescriptionHelpFormatter) - -for arg, config in common_args.items(): - parser_bench.add_argument(arg, **config) - -parser_bench.add_argument('--runtime', help='Runtime(s) space separated', choices=runtimeNames, nargs='*', default=runtimeNames) -parser_bench.add_argument('--pallet', help='Pallet(s) space separated', nargs='*', default=[]) -parser_bench.add_argument('--fail-fast', help='Fail fast on first failed benchmark', action='store_true') - - -""" -BENCH OMNI -""" - bench_example = '''**Examples**: Runs all benchmarks %(prog)s @@ -86,14 +58,14 @@ bench_example = '''**Examples**: %(prog)s --runtime westend rococo --pallet pallet_balances pallet_multisig --quiet --clean ''' -parser_bench_old = subparsers.add_parser('bench-omni', help='Runs benchmarks (frame omni bencher)', epilog=bench_example, formatter_class=argparse.RawDescriptionHelpFormatter) +parser_bench = subparsers.add_parser('bench', aliases=['bench-omni'], help='Runs benchmarks (frame omni bencher)', epilog=bench_example, formatter_class=argparse.RawDescriptionHelpFormatter) for arg, config in common_args.items(): - parser_bench_old.add_argument(arg, **config) + parser_bench.add_argument(arg, **config) -parser_bench_old.add_argument('--runtime', help='Runtime(s) space separated', choices=runtimeNames, nargs='*', default=runtimeNames) -parser_bench_old.add_argument('--pallet', help='Pallet(s) space separated', nargs='*', default=[]) -parser_bench_old.add_argument('--fail-fast', help='Fail fast on first failed benchmark', action='store_true') +parser_bench.add_argument('--runtime', help='Runtime(s) space separated', choices=runtimeNames, nargs='*', default=runtimeNames) +parser_bench.add_argument('--pallet', help='Pallet(s) space separated', nargs='*', default=[]) +parser_bench.add_argument('--fail-fast', help='Fail fast on first failed benchmark', action='store_true') """ @@ -127,7 +99,7 @@ def main(): print(f'args: {args}') - if args.command == 'bench-omni': + if args.command == 'bench' or args.command == 'bench-omni': runtime_pallets_map = {} failed_benchmarks = {} successful_benchmarks = {} @@ -144,7 +116,14 @@ def main(): for runtime in runtimesMatrix.values(): build_command = f"forklift cargo build -p {runtime['package']} --profile {profile} --features={runtime['bench_features']}" print(f'-- building "{runtime["name"]}" with `{build_command}`') - os.system(build_command) + build_status = os.system(build_command) + if build_status != 0: + print_and_log(f'⌠Failed to build {runtime["name"]}') + if args.fail_fast: + sys.exit(1) + else: + continue + print(f'-- listing pallets for benchmark for {runtime["name"]}') wasm_file = f"target/{profile}/wbuild/{runtime['package']}/{runtime['package'].replace('-', '_')}.wasm" list_command = f"frame-omni-bencher v1 benchmark pallet " \ @@ -219,12 +198,15 @@ def main(): # TODO: we can remove once all pallets in dev runtime are migrated to polkadot-sdk-frame try: uses_polkadot_sdk_frame = "true" in os.popen(f"cargo metadata --locked --format-version 1 --no-deps | jq -r '.packages[] | select(.name == \"{pallet.replace('_', '-')}\") | .dependencies | any(.name == \"polkadot-sdk-frame\")'").read() + print(f'uses_polkadot_sdk_frame: {uses_polkadot_sdk_frame}') # Empty output from the previous os.popen command except StopIteration: + print(f'Error: {pallet} not found in dev runtime') uses_polkadot_sdk_frame = False template = config['template'] if uses_polkadot_sdk_frame and re.match(r"frame-(:?umbrella-)?weight-template\.hbs", os.path.normpath(template).split(os.path.sep)[-1]): template = "substrate/.maintain/frame-umbrella-weight-template.hbs" + print(f'template: {template}') else: default_path = f"./{config['path']}/src/weights" xcm_path = f"./{config['path']}/src/weights/xcm" @@ -270,149 +252,6 @@ def main(): print_and_log('✅ Successful benchmarks of runtimes/pallets:') for runtime, pallets in successful_benchmarks.items(): print_and_log(f'-- {runtime}: {pallets}') - - if args.command == 'bench': - runtime_pallets_map = {} - failed_benchmarks = {} - successful_benchmarks = {} - - profile = "production" - - print(f'Provided runtimes: {args.runtime}') - # convert to mapped dict - runtimesMatrix = list(filter(lambda x: x['name'] in args.runtime, runtimesMatrix)) - runtimesMatrix = {x['name']: x for x in runtimesMatrix} - print(f'Filtered out runtimes: {runtimesMatrix}') - - # loop over remaining runtimes to collect available pallets - for runtime in runtimesMatrix.values(): - build_command = f"forklift cargo build -p {runtime['old_package']} --profile {profile} --features={runtime['bench_features']} --locked" - print(f'-- building {runtime["name"]} with `{build_command}`') - os.system(build_command) - - chain = runtime['name'] if runtime['name'] == 'dev' else f"{runtime['name']}-dev" - - machine_test = f"target/{profile}/{runtime['old_bin']} benchmark machine --chain={chain}" - print(f"Running machine test for `{machine_test}`") - os.system(machine_test) - - print(f'-- listing pallets for benchmark for {chain}') - list_command = f"target/{profile}/{runtime['old_bin']} " \ - f"benchmark pallet " \ - f"--no-csv-header " \ - f"--no-storage-info " \ - f"--no-min-squares " \ - f"--no-median-slopes " \ - f"--all " \ - f"--list " \ - f"--chain={chain}" - print(f'-- running: {list_command}') - output = os.popen(list_command).read() - raw_pallets = output.strip().split('\n') - - all_pallets = set() - for pallet in raw_pallets: - if pallet: - all_pallets.add(pallet.split(',')[0].strip()) - - pallets = list(all_pallets) - print(f'Pallets in {runtime["name"]}: {pallets}') - runtime_pallets_map[runtime['name']] = pallets - - print(f'\n') - - # filter out only the specified pallets from collected runtimes/pallets - if args.pallet: - print(f'Pallets: {args.pallet}') - new_pallets_map = {} - # keep only specified pallets if they exist in the runtime - for runtime in runtime_pallets_map: - if set(args.pallet).issubset(set(runtime_pallets_map[runtime])): - new_pallets_map[runtime] = args.pallet - - runtime_pallets_map = new_pallets_map - - print(f'Filtered out runtimes & pallets: {runtime_pallets_map}\n') - - if not runtime_pallets_map: - if args.pallet and not args.runtime: - print(f"No pallets {args.pallet} found in any runtime") - elif args.runtime and not args.pallet: - print(f"{args.runtime} runtime does not have any pallets") - elif args.runtime and args.pallet: - print(f"No pallets {args.pallet} found in {args.runtime}") - else: - print('No runtimes found') - sys.exit(1) - - for runtime in runtime_pallets_map: - for pallet in runtime_pallets_map[runtime]: - config = runtimesMatrix[runtime] - header_path = os.path.abspath(config['header']) - template = None - - chain = config['name'] if runtime == 'dev' else f"{config['name']}-dev" - - print(f'-- config: {config}') - if runtime == 'dev': - # to support sub-modules (https://github.com/paritytech/command-bot/issues/275) - search_manifest_path = f"cargo metadata --locked --format-version 1 --no-deps | jq -r '.packages[] | select(.name == \"{pallet.replace('_', '-')}\") | .manifest_path'" - print(f'-- running: {search_manifest_path}') - manifest_path = os.popen(search_manifest_path).read() - if not manifest_path: - print(f'-- pallet {pallet} not found in dev runtime') - if args.fail_fast: - print_and_log(f'Error: {pallet} not found in dev runtime') - sys.exit(1) - package_dir = os.path.dirname(manifest_path) - print(f'-- package_dir: {package_dir}') - print(f'-- manifest_path: {manifest_path}') - output_path = os.path.join(package_dir, "src", "weights.rs") - template = config['template'] - else: - default_path = f"./{config['path']}/src/weights" - xcm_path = f"./{config['path']}/src/weights/xcm" - output_path = default_path - if pallet.startswith("pallet_xcm_benchmarks"): - template = config['template'] - output_path = xcm_path - - print(f'-- benchmarking {pallet} in {runtime} into {output_path}') - cmd = f"target/{profile}/{config['old_bin']} benchmark pallet " \ - f"--extrinsic=* " \ - f"--chain={chain} " \ - f"--pallet={pallet} " \ - f"--header={header_path} " \ - f"--output={output_path} " \ - f"--wasm-execution=compiled " \ - f"--steps=50 " \ - f"--repeat=20 " \ - f"--heap-pages=4096 " \ - f"{f'--template={template} ' if template else ''}" \ - f"--no-storage-info --no-min-squares --no-median-slopes " - print(f'-- Running: {cmd} \n') - status = os.system(cmd) - - if status != 0 and args.fail_fast: - print_and_log(f'⌠Failed to benchmark {pallet} in {runtime}') - sys.exit(1) - - # Otherwise collect failed benchmarks and print them at the end - # push failed pallets to failed_benchmarks - if status != 0: - failed_benchmarks[f'{runtime}'] = failed_benchmarks.get(f'{runtime}', []) + [pallet] - else: - successful_benchmarks[f'{runtime}'] = successful_benchmarks.get(f'{runtime}', []) + [pallet] - - if failed_benchmarks: - print_and_log('⌠Failed benchmarks of runtimes/pallets:') - for runtime, pallets in failed_benchmarks.items(): - print_and_log(f'-- {runtime}: {pallets}') - - if successful_benchmarks: - print_and_log('✅ Successful benchmarks of runtimes/pallets:') - for runtime, pallets in successful_benchmarks.items(): - print_and_log(f'-- {runtime}: {pallets}') elif args.command == 'fmt': command = f"cargo +nightly fmt" diff --git a/.github/workflows/runtimes-matrix.json b/.github/workflows/runtimes-matrix.json index ff16b739724..747b2bb4ac8 100644 --- a/.github/workflows/runtimes-matrix.json +++ b/.github/workflows/runtimes-matrix.json @@ -8,8 +8,6 @@ "bench_features": "runtime-benchmarks", "bench_flags": "--genesis-builder-policy=none --exclude-pallets=pallet_xcm,pallet_xcm_benchmarks::fungible,pallet_xcm_benchmarks::generic,pallet_nomination_pools,pallet_remark,pallet_transaction_storage", "uri": null, - "old_package": "staging-node-cli", - "old_bin": "substrate-node", "is_relay": false }, { @@ -21,8 +19,6 @@ "bench_flags": "", "bench_features": "runtime-benchmarks", "uri": "wss://try-runtime-westend.polkadot.io:443", - "old_package": "polkadot", - "old_bin": "polkadot", "is_relay": true }, { @@ -34,8 +30,6 @@ "bench_features": "runtime-benchmarks", "bench_flags": "", "uri": "wss://try-runtime-rococo.polkadot.io:443", - "old_package": "polkadot", - "old_bin": "polkadot", "is_relay": true }, { @@ -47,8 +41,6 @@ "bench_features": "runtime-benchmarks", "bench_flags": "", "uri": "wss://westend-asset-hub-rpc.polkadot.io:443", - "old_package": "polkadot-parachain-bin", - "old_bin": "polkadot-parachain", "is_relay": false }, { @@ -60,8 +52,6 @@ "bench_features": "runtime-benchmarks", "bench_flags": "", "uri": "wss://rococo-asset-hub-rpc.polkadot.io:443", - "old_package": "polkadot-parachain-bin", - "old_bin": "polkadot-parachain", "is_relay": false }, { @@ -73,8 +63,6 @@ "bench_features": "runtime-benchmarks", "bench_flags": "", "uri": "wss://rococo-bridge-hub-rpc.polkadot.io:443", - "old_package": "polkadot-parachain-bin", - "old_bin": "polkadot-parachain", "is_relay": false }, { @@ -86,8 +74,6 @@ "bench_features": "runtime-benchmarks", "bench_flags": "", "uri": "wss://westend-bridge-hub-rpc.polkadot.io:443", - "old_package": "polkadot-parachain-bin", - "old_bin": "polkadot-parachain", "is_relay": false }, { @@ -99,8 +85,6 @@ "bench_features": "runtime-benchmarks", "bench_flags": "", "uri": "wss://westend-collectives-rpc.polkadot.io:443", - "old_package": "polkadot-parachain-bin", - "old_bin": "polkadot-parachain", "is_relay": false }, { @@ -112,8 +96,6 @@ "bench_features": "runtime-benchmarks", "bench_flags": "--genesis-builder-policy=none --exclude-pallets=pallet_xcm", "uri": "wss://rococo-contracts-rpc.polkadot.io:443", - "old_package": "polkadot-parachain-bin", - "old_bin": "polkadot-parachain", "is_relay": false }, { @@ -125,8 +107,6 @@ "bench_features": "runtime-benchmarks", "bench_flags": "--genesis-builder-policy=none --exclude-pallets=pallet_xcm,pallet_xcm_benchmarks::fungible,pallet_xcm_benchmarks::generic", "uri": "wss://rococo-coretime-rpc.polkadot.io:443", - "old_package": "polkadot-parachain-bin", - "old_bin": "polkadot-parachain", "is_relay": false }, { @@ -138,8 +118,6 @@ "bench_features": "runtime-benchmarks", "bench_flags": "--genesis-builder-policy=none --exclude-pallets=pallet_xcm,pallet_xcm_benchmarks::fungible,pallet_xcm_benchmarks::generic", "uri": "wss://westend-coretime-rpc.polkadot.io:443", - "old_package": "polkadot-parachain-bin", - "old_bin": "polkadot-parachain", "is_relay": false }, { @@ -151,8 +129,6 @@ "bench_features": "runtime-benchmarks", "bench_flags": "--genesis-builder-policy=none", "uri": null, - "old_package": "polkadot-parachain-bin", - "old_bin": "polkadot-parachain", "is_relay": false }, { @@ -164,8 +140,6 @@ "bench_features": "runtime-benchmarks", "bench_flags": "--genesis-builder-policy=none --exclude-pallets=pallet_xcm,pallet_xcm_benchmarks::fungible,pallet_xcm_benchmarks::generic", "uri": "wss://rococo-people-rpc.polkadot.io:443", - "old_package": "polkadot-parachain-bin", - "old_bin": "polkadot-parachain", "is_relay": false }, { @@ -177,8 +151,6 @@ "bench_features": "runtime-benchmarks", "bench_flags": "--genesis-builder-policy=none --exclude-pallets=pallet_xcm,pallet_xcm_benchmarks::fungible,pallet_xcm_benchmarks::generic", "uri": "wss://westend-people-rpc.polkadot.io:443", - "old_package": "polkadot-parachain-bin", - "old_bin": "polkadot-parachain", "is_relay": false } ] diff --git a/substrate/.maintain/frame-weight-template.hbs b/substrate/.maintain/frame-weight-template.hbs index b174823b384..ec9eee205ce 100644 --- a/substrate/.maintain/frame-weight-template.hbs +++ b/substrate/.maintain/frame-weight-template.hbs @@ -17,7 +17,8 @@ #![allow(unused_imports)] #![allow(missing_docs)] -use frame::weights_prelude::*; +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use core::marker::PhantomData; /// Weight functions needed for `{{pallet}}`. pub trait WeightInfo { diff --git a/substrate/frame/multisig/src/weights.rs b/substrate/frame/multisig/src/weights.rs index 1c91734e618..0f8167a07a1 100644 --- a/substrate/frame/multisig/src/weights.rs +++ b/substrate/frame/multisig/src/weights.rs @@ -18,17 +18,18 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2025-01-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2025-01-28, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `25968fd2c26d`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` -//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` +//! HOSTNAME: `fff8f38555b9`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `None`, DB CACHE: `1024` // Executed Command: -// target/production/substrate-node +// frame-omni-bencher +// v1 // benchmark // pallet // --extrinsic=* -// --chain=dev +// --runtime=target/production/wbuild/kitchensink-runtime/kitchensink_runtime.wasm // --pallet=pallet_multisig // --header=/__w/polkadot-sdk/polkadot-sdk/substrate/HEADER-APACHE2 // --output=/__w/polkadot-sdk/polkadot-sdk/substrate/frame/multisig/src/weights.rs @@ -36,10 +37,12 @@ // --steps=50 // --repeat=20 // --heap-pages=4096 -// --template=substrate/.maintain/frame-weight-template.hbs +// --template=substrate/.maintain/frame-umbrella-weight-template.hbs // --no-storage-info // --no-min-squares // --no-median-slopes +// --genesis-builder-policy=none +// --exclude-pallets=pallet_xcm,pallet_xcm_benchmarks::fungible,pallet_xcm_benchmarks::generic,pallet_nomination_pools,pallet_remark,pallet_transaction_storage #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -69,12 +72,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `z` is `[0, 10000]`. fn as_multi_threshold_1(z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `145` + // Measured: `0` // Estimated: `3997` - // Minimum execution time: 28_800_000 picoseconds. - Weight::from_parts(30_130_161, 3997) - // Standard Error: 18 - .saturating_add(Weight::from_parts(551, 0).saturating_mul(z.into())) + // Minimum execution time: 18_665_000 picoseconds. + Weight::from_parts(19_157_181, 3997) + // Standard Error: 6 + .saturating_add(Weight::from_parts(590, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: `Multisig::Multisigs` (r:1 w:1) @@ -83,14 +86,14 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `334 + s * (2 ±0)` + // Measured: `229 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 51_467_000 picoseconds. - Weight::from_parts(38_610_296, 6811) - // Standard Error: 1_796 - .saturating_add(Weight::from_parts(161_251, 0).saturating_mul(s.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(2_068, 0).saturating_mul(z.into())) + // Minimum execution time: 42_388_000 picoseconds. + Weight::from_parts(29_499_967, 6811) + // Standard Error: 1_563 + .saturating_add(Weight::from_parts(145_538, 0).saturating_mul(s.into())) + // Standard Error: 15 + .saturating_add(Weight::from_parts(2_016, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -100,14 +103,14 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `z` is `[0, 10000]`. fn as_multi_approve(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `353` + // Measured: `185` // Estimated: `6811` - // Minimum execution time: 36_208_000 picoseconds. - Weight::from_parts(24_694_507, 6811) - // Standard Error: 1_430 - .saturating_add(Weight::from_parts(134_263, 0).saturating_mul(s.into())) - // Standard Error: 14 - .saturating_add(Weight::from_parts(2_021, 0).saturating_mul(z.into())) + // Minimum execution time: 27_231_000 picoseconds. + Weight::from_parts(16_755_689, 6811) + // Standard Error: 866 + .saturating_add(Weight::from_parts(119_094, 0).saturating_mul(s.into())) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_927, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -123,14 +126,14 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `604 + s * (33 ±0)` + // Measured: `288 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 65_217_000 picoseconds. - Weight::from_parts(48_235_573, 6811) - // Standard Error: 2_841 - .saturating_add(Weight::from_parts(205_077, 0).saturating_mul(s.into())) - // Standard Error: 27 - .saturating_add(Weight::from_parts(2_298, 0).saturating_mul(z.into())) + // Minimum execution time: 50_448_000 picoseconds. + Weight::from_parts(34_504_261, 6811) + // Standard Error: 2_070 + .saturating_add(Weight::from_parts(189_586, 0).saturating_mul(s.into())) + // Standard Error: 20 + .saturating_add(Weight::from_parts(2_116, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -139,12 +142,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `s` is `[2, 100]`. fn approve_as_multi_create(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `334 + s * (2 ±0)` + // Measured: `233 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 35_727_000 picoseconds. - Weight::from_parts(37_329_524, 6811) - // Standard Error: 1_814 - .saturating_add(Weight::from_parts(157_471, 0).saturating_mul(s.into())) + // Minimum execution time: 26_020_000 picoseconds. + Weight::from_parts(28_229_601, 6811) + // Standard Error: 1_282 + .saturating_add(Weight::from_parts(133_221, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -153,12 +156,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `s` is `[2, 100]`. fn approve_as_multi_approve(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `353` + // Measured: `185` // Estimated: `6811` - // Minimum execution time: 21_623_000 picoseconds. - Weight::from_parts(22_601_251, 6811) - // Standard Error: 963 - .saturating_add(Weight::from_parts(139_320, 0).saturating_mul(s.into())) + // Minimum execution time: 13_660_000 picoseconds. + Weight::from_parts(14_317_629, 6811) + // Standard Error: 1_188 + .saturating_add(Weight::from_parts(125_599, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -167,12 +170,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> { /// The range of component `s` is `[2, 100]`. fn cancel_as_multi(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `525 + s * (1 ±0)` + // Measured: `357 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 36_801_000 picoseconds. - Weight::from_parts(37_578_412, 6811) - // Standard Error: 1_580 - .saturating_add(Weight::from_parts(159_580, 0).saturating_mul(s.into())) + // Minimum execution time: 27_827_000 picoseconds. + Weight::from_parts(28_980_511, 6811) + // Standard Error: 822 + .saturating_add(Weight::from_parts(130_315, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -187,12 +190,12 @@ impl WeightInfo for () { /// The range of component `z` is `[0, 10000]`. fn as_multi_threshold_1(z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `145` + // Measured: `0` // Estimated: `3997` - // Minimum execution time: 28_800_000 picoseconds. - Weight::from_parts(30_130_161, 3997) - // Standard Error: 18 - .saturating_add(Weight::from_parts(551, 0).saturating_mul(z.into())) + // Minimum execution time: 18_665_000 picoseconds. + Weight::from_parts(19_157_181, 3997) + // Standard Error: 6 + .saturating_add(Weight::from_parts(590, 0).saturating_mul(z.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) } /// Storage: `Multisig::Multisigs` (r:1 w:1) @@ -201,14 +204,14 @@ impl WeightInfo for () { /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `334 + s * (2 ±0)` + // Measured: `229 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 51_467_000 picoseconds. - Weight::from_parts(38_610_296, 6811) - // Standard Error: 1_796 - .saturating_add(Weight::from_parts(161_251, 0).saturating_mul(s.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(2_068, 0).saturating_mul(z.into())) + // Minimum execution time: 42_388_000 picoseconds. + Weight::from_parts(29_499_967, 6811) + // Standard Error: 1_563 + .saturating_add(Weight::from_parts(145_538, 0).saturating_mul(s.into())) + // Standard Error: 15 + .saturating_add(Weight::from_parts(2_016, 0).saturating_mul(z.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -218,14 +221,14 @@ impl WeightInfo for () { /// The range of component `z` is `[0, 10000]`. fn as_multi_approve(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `353` + // Measured: `185` // Estimated: `6811` - // Minimum execution time: 36_208_000 picoseconds. - Weight::from_parts(24_694_507, 6811) - // Standard Error: 1_430 - .saturating_add(Weight::from_parts(134_263, 0).saturating_mul(s.into())) - // Standard Error: 14 - .saturating_add(Weight::from_parts(2_021, 0).saturating_mul(z.into())) + // Minimum execution time: 27_231_000 picoseconds. + Weight::from_parts(16_755_689, 6811) + // Standard Error: 866 + .saturating_add(Weight::from_parts(119_094, 0).saturating_mul(s.into())) + // Standard Error: 8 + .saturating_add(Weight::from_parts(1_927, 0).saturating_mul(z.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -241,14 +244,14 @@ impl WeightInfo for () { /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `604 + s * (33 ±0)` + // Measured: `288 + s * (33 ±0)` // Estimated: `6811` - // Minimum execution time: 65_217_000 picoseconds. - Weight::from_parts(48_235_573, 6811) - // Standard Error: 2_841 - .saturating_add(Weight::from_parts(205_077, 0).saturating_mul(s.into())) - // Standard Error: 27 - .saturating_add(Weight::from_parts(2_298, 0).saturating_mul(z.into())) + // Minimum execution time: 50_448_000 picoseconds. + Weight::from_parts(34_504_261, 6811) + // Standard Error: 2_070 + .saturating_add(Weight::from_parts(189_586, 0).saturating_mul(s.into())) + // Standard Error: 20 + .saturating_add(Weight::from_parts(2_116, 0).saturating_mul(z.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -257,12 +260,12 @@ impl WeightInfo for () { /// The range of component `s` is `[2, 100]`. fn approve_as_multi_create(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `334 + s * (2 ±0)` + // Measured: `233 + s * (2 ±0)` // Estimated: `6811` - // Minimum execution time: 35_727_000 picoseconds. - Weight::from_parts(37_329_524, 6811) - // Standard Error: 1_814 - .saturating_add(Weight::from_parts(157_471, 0).saturating_mul(s.into())) + // Minimum execution time: 26_020_000 picoseconds. + Weight::from_parts(28_229_601, 6811) + // Standard Error: 1_282 + .saturating_add(Weight::from_parts(133_221, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -271,12 +274,12 @@ impl WeightInfo for () { /// The range of component `s` is `[2, 100]`. fn approve_as_multi_approve(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `353` + // Measured: `185` // Estimated: `6811` - // Minimum execution time: 21_623_000 picoseconds. - Weight::from_parts(22_601_251, 6811) - // Standard Error: 963 - .saturating_add(Weight::from_parts(139_320, 0).saturating_mul(s.into())) + // Minimum execution time: 13_660_000 picoseconds. + Weight::from_parts(14_317_629, 6811) + // Standard Error: 1_188 + .saturating_add(Weight::from_parts(125_599, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -285,12 +288,12 @@ impl WeightInfo for () { /// The range of component `s` is `[2, 100]`. fn cancel_as_multi(s: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `525 + s * (1 ±0)` + // Measured: `357 + s * (1 ±0)` // Estimated: `6811` - // Minimum execution time: 36_801_000 picoseconds. - Weight::from_parts(37_578_412, 6811) - // Standard Error: 1_580 - .saturating_add(Weight::from_parts(159_580, 0).saturating_mul(s.into())) + // Minimum execution time: 27_827_000 picoseconds. + Weight::from_parts(28_980_511, 6811) + // Standard Error: 822 + .saturating_add(Weight::from_parts(130_315, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } -- GitLab