Force base weights to be the minimum only when the intercept is negative (#12482)

* Force base weights to be the minimum only when the intercept is negative; emit minimum execution times

* Add an `assert` making sure the intercept is zero when it's supposed to be zero

* Fix template

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* ".git/.scripts/bench-bot.sh" pallet dev pallet_assets

* ".git/.scripts/bench-bot.sh" pallet dev pallet_uniques

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: command-bot <>
This commit is contained in:
Koute
2022-10-21 05:07:52 +09:00
committed by GitHub
parent 62d72f9258
commit 92d2977292
6 changed files with 314 additions and 166 deletions
@@ -64,6 +64,7 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
{{~#each benchmark.components as |c| ~}}
{{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}}
) -> Weight {
// Minimum execution time: {{underscore benchmark.min_execution_time}} nanoseconds.
Weight::from_ref_time({{underscore benchmark.base_weight}} as u64)
{{#each benchmark.component_weight as |cw|}}
// Standard Error: {{underscore cw.error}}
@@ -99,6 +100,7 @@ impl WeightInfo for () {
{{~#each benchmark.components as |c| ~}}
{{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}}
) -> Weight {
// Minimum execution time: {{underscore benchmark.min_execution_time}} nanoseconds.
Weight::from_ref_time({{underscore benchmark.base_weight}} as u64)
{{#each benchmark.component_weight as |cw|}}
// Standard Error: {{underscore cw.error}}
+134 -79
View File
@@ -18,22 +18,25 @@
//! Autogenerated weights for pallet_assets
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2022-05-23, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
// Executed Command:
// ./target/production/substrate
// /home/benchbot/cargo_target_dir/production/substrate
// benchmark
// pallet
// --chain=dev
// --steps=50
// --repeat=20
// --pallet=pallet_assets
// --extrinsic=*
// --execution=wasm
// --wasm-execution=compiled
// --template=./.maintain/frame-weight-template.hbs
// --heap-pages=4096
// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/substrate/.git/.artifacts/bench.json
// --pallet=pallet_assets
// --chain=dev
// --output=./frame/assets/src/weights.rs
// --template=./.maintain/frame-weight-template.hbs
#![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)]
@@ -74,13 +77,15 @@ pub struct SubstrateWeight<T>(PhantomData<T>);
impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Assets Asset (r:1 w:1)
fn create() -> Weight {
Weight::from_ref_time(27_167_000 as u64)
// Minimum execution time: 32_200 nanoseconds.
Weight::from_ref_time(32_739_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
fn force_create() -> Weight {
Weight::from_ref_time(15_473_000 as u64)
// Minimum execution time: 19_192 nanoseconds.
Weight::from_ref_time(19_615_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
@@ -89,14 +94,16 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: System Account (r:5000 w:5000)
// Storage: Assets Metadata (r:1 w:0)
// Storage: Assets Approvals (r:501 w:500)
/// The range of component `c` is `[0, 5000]`.
/// The range of component `s` is `[0, 5000]`.
/// The range of component `a` is `[0, 500]`.
fn destroy(c: u32, s: u32, a: u32, ) -> Weight {
Weight::from_ref_time(0 as u64)
// Standard Error: 37_000
.saturating_add(Weight::from_ref_time(17_145_000 as u64).saturating_mul(c as u64))
// Standard Error: 37_000
.saturating_add(Weight::from_ref_time(19_333_000 as u64).saturating_mul(s as u64))
// Standard Error: 375_000
.saturating_add(Weight::from_ref_time(17_046_000 as u64).saturating_mul(a as u64))
// Minimum execution time: 75_299_531 nanoseconds.
Weight::from_ref_time(75_567_795_000 as u64)
// Standard Error: 126_181
.saturating_add(Weight::from_ref_time(8_378_363 as u64).saturating_mul(c as u64))
// Standard Error: 126_181
.saturating_add(Weight::from_ref_time(10_950_076 as u64).saturating_mul(s as u64))
.saturating_add(T::DbWeight::get().reads(5 as u64))
.saturating_add(T::DbWeight::get().reads((2 as u64).saturating_mul(c as u64)))
.saturating_add(T::DbWeight::get().reads((2 as u64).saturating_mul(s as u64)))
@@ -109,14 +116,16 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Assets Asset (r:1 w:1)
// Storage: Assets Account (r:1 w:1)
fn mint() -> Weight {
Weight::from_ref_time(30_819_000 as u64)
// Minimum execution time: 35_066 nanoseconds.
Weight::from_ref_time(36_217_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
// Storage: Assets Asset (r:1 w:1)
// Storage: Assets Account (r:1 w:1)
fn burn() -> Weight {
Weight::from_ref_time(35_212_000 as u64)
// Minimum execution time: 44_915 nanoseconds.
Weight::from_ref_time(45_807_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
@@ -124,7 +133,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Assets Account (r:2 w:2)
// Storage: System Account (r:1 w:1)
fn transfer() -> Weight {
Weight::from_ref_time(47_401_000 as u64)
// Minimum execution time: 57_245 nanoseconds.
Weight::from_ref_time(58_179_000 as u64)
.saturating_add(T::DbWeight::get().reads(4 as u64))
.saturating_add(T::DbWeight::get().writes(4 as u64))
}
@@ -132,7 +142,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Assets Account (r:2 w:2)
// Storage: System Account (r:1 w:1)
fn transfer_keep_alive() -> Weight {
Weight::from_ref_time(42_300_000 as u64)
// Minimum execution time: 47_028 nanoseconds.
Weight::from_ref_time(47_571_000 as u64)
.saturating_add(T::DbWeight::get().reads(4 as u64))
.saturating_add(T::DbWeight::get().writes(4 as u64))
}
@@ -140,93 +151,108 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Assets Account (r:2 w:2)
// Storage: System Account (r:1 w:1)
fn force_transfer() -> Weight {
Weight::from_ref_time(47_946_000 as u64)
// Minimum execution time: 57_069 nanoseconds.
Weight::from_ref_time(58_245_000 as u64)
.saturating_add(T::DbWeight::get().reads(4 as u64))
.saturating_add(T::DbWeight::get().writes(4 as u64))
}
// Storage: Assets Asset (r:1 w:0)
// Storage: Assets Account (r:1 w:1)
fn freeze() -> Weight {
Weight::from_ref_time(21_670_000 as u64)
// Minimum execution time: 26_823 nanoseconds.
Weight::from_ref_time(27_689_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:0)
// Storage: Assets Account (r:1 w:1)
fn thaw() -> Weight {
Weight::from_ref_time(21_503_000 as u64)
// Minimum execution time: 26_984 nanoseconds.
Weight::from_ref_time(27_591_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
fn freeze_asset() -> Weight {
Weight::from_ref_time(18_158_000 as u64)
// Minimum execution time: 23_803 nanoseconds.
Weight::from_ref_time(24_269_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
fn thaw_asset() -> Weight {
Weight::from_ref_time(18_525_000 as u64)
// Minimum execution time: 22_977 nanoseconds.
Weight::from_ref_time(23_527_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
// Storage: Assets Metadata (r:1 w:0)
fn transfer_ownership() -> Weight {
Weight::from_ref_time(19_858_000 as u64)
// Minimum execution time: 23_815 nanoseconds.
Weight::from_ref_time(24_597_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
fn set_team() -> Weight {
Weight::from_ref_time(18_045_000 as u64)
// Minimum execution time: 22_691 nanoseconds.
Weight::from_ref_time(23_173_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:0)
// Storage: Assets Metadata (r:1 w:1)
fn set_metadata(n: u32, s: u32, ) -> Weight {
Weight::from_ref_time(32_395_000 as u64)
// Standard Error: 0
.saturating_add(Weight::from_ref_time(5_000 as u64).saturating_mul(n as u64))
// Standard Error: 0
.saturating_add(Weight::from_ref_time(2_000 as u64).saturating_mul(s as u64))
/// The range of component `n` is `[0, 50]`.
/// The range of component `s` is `[0, 50]`.
fn set_metadata(_n: u32, _s: u32, ) -> Weight {
// Minimum execution time: 40_675 nanoseconds.
Weight::from_ref_time(42_869_113 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:0)
// Storage: Assets Metadata (r:1 w:1)
fn clear_metadata() -> Weight {
Weight::from_ref_time(32_893_000 as u64)
// Minimum execution time: 42_361 nanoseconds.
Weight::from_ref_time(42_912_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:0)
// Storage: Assets Metadata (r:1 w:1)
fn force_set_metadata(_n: u32, s: u32, ) -> Weight {
Weight::from_ref_time(19_586_000 as u64)
// Standard Error: 0
.saturating_add(Weight::from_ref_time(1_000 as u64).saturating_mul(s as u64))
/// The range of component `n` is `[0, 50]`.
/// The range of component `s` is `[0, 50]`.
fn force_set_metadata(n: u32, s: u32, ) -> Weight {
// Minimum execution time: 22_998 nanoseconds.
Weight::from_ref_time(23_844_675 as u64)
// Standard Error: 506
.saturating_add(Weight::from_ref_time(2_874 as u64).saturating_mul(n as u64))
// Standard Error: 506
.saturating_add(Weight::from_ref_time(3_817 as u64).saturating_mul(s as u64))
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:0)
// Storage: Assets Metadata (r:1 w:1)
fn force_clear_metadata() -> Weight {
Weight::from_ref_time(32_478_000 as u64)
// Minimum execution time: 42_305 nanoseconds.
Weight::from_ref_time(42_678_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
fn force_asset_status() -> Weight {
Weight::from_ref_time(17_143_000 as u64)
// Minimum execution time: 22_052 nanoseconds.
Weight::from_ref_time(22_610_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
// Storage: Assets Approvals (r:1 w:1)
fn approve_transfer() -> Weight {
Weight::from_ref_time(36_389_000 as u64)
// Minimum execution time: 44_900 nanoseconds.
Weight::from_ref_time(46_032_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
@@ -235,21 +261,24 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Assets Account (r:2 w:2)
// Storage: System Account (r:1 w:1)
fn transfer_approved() -> Weight {
Weight::from_ref_time(61_854_000 as u64)
// Minimum execution time: 72_261 nanoseconds.
Weight::from_ref_time(73_186_000 as u64)
.saturating_add(T::DbWeight::get().reads(5 as u64))
.saturating_add(T::DbWeight::get().writes(5 as u64))
}
// Storage: Assets Asset (r:1 w:1)
// Storage: Assets Approvals (r:1 w:1)
fn cancel_approval() -> Weight {
Weight::from_ref_time(36_759_000 as u64)
// Minimum execution time: 47_268 nanoseconds.
Weight::from_ref_time(47_712_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
// Storage: Assets Asset (r:1 w:1)
// Storage: Assets Approvals (r:1 w:1)
fn force_cancel_approval() -> Weight {
Weight::from_ref_time(37_753_000 as u64)
// Minimum execution time: 47_363 nanoseconds.
Weight::from_ref_time(48_696_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
@@ -259,13 +288,15 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
impl WeightInfo for () {
// Storage: Assets Asset (r:1 w:1)
fn create() -> Weight {
Weight::from_ref_time(27_167_000 as u64)
// Minimum execution time: 32_200 nanoseconds.
Weight::from_ref_time(32_739_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
fn force_create() -> Weight {
Weight::from_ref_time(15_473_000 as u64)
// Minimum execution time: 19_192 nanoseconds.
Weight::from_ref_time(19_615_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
@@ -274,14 +305,16 @@ impl WeightInfo for () {
// Storage: System Account (r:5000 w:5000)
// Storage: Assets Metadata (r:1 w:0)
// Storage: Assets Approvals (r:501 w:500)
/// The range of component `c` is `[0, 5000]`.
/// The range of component `s` is `[0, 5000]`.
/// The range of component `a` is `[0, 500]`.
fn destroy(c: u32, s: u32, a: u32, ) -> Weight {
Weight::from_ref_time(0 as u64)
// Standard Error: 37_000
.saturating_add(Weight::from_ref_time(17_145_000 as u64).saturating_mul(c as u64))
// Standard Error: 37_000
.saturating_add(Weight::from_ref_time(19_333_000 as u64).saturating_mul(s as u64))
// Standard Error: 375_000
.saturating_add(Weight::from_ref_time(17_046_000 as u64).saturating_mul(a as u64))
// Minimum execution time: 75_299_531 nanoseconds.
Weight::from_ref_time(75_567_795_000 as u64)
// Standard Error: 126_181
.saturating_add(Weight::from_ref_time(8_378_363 as u64).saturating_mul(c as u64))
// Standard Error: 126_181
.saturating_add(Weight::from_ref_time(10_950_076 as u64).saturating_mul(s as u64))
.saturating_add(RocksDbWeight::get().reads(5 as u64))
.saturating_add(RocksDbWeight::get().reads((2 as u64).saturating_mul(c as u64)))
.saturating_add(RocksDbWeight::get().reads((2 as u64).saturating_mul(s as u64)))
@@ -294,14 +327,16 @@ impl WeightInfo for () {
// Storage: Assets Asset (r:1 w:1)
// Storage: Assets Account (r:1 w:1)
fn mint() -> Weight {
Weight::from_ref_time(30_819_000 as u64)
// Minimum execution time: 35_066 nanoseconds.
Weight::from_ref_time(36_217_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
// Storage: Assets Asset (r:1 w:1)
// Storage: Assets Account (r:1 w:1)
fn burn() -> Weight {
Weight::from_ref_time(35_212_000 as u64)
// Minimum execution time: 44_915 nanoseconds.
Weight::from_ref_time(45_807_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
@@ -309,7 +344,8 @@ impl WeightInfo for () {
// Storage: Assets Account (r:2 w:2)
// Storage: System Account (r:1 w:1)
fn transfer() -> Weight {
Weight::from_ref_time(47_401_000 as u64)
// Minimum execution time: 57_245 nanoseconds.
Weight::from_ref_time(58_179_000 as u64)
.saturating_add(RocksDbWeight::get().reads(4 as u64))
.saturating_add(RocksDbWeight::get().writes(4 as u64))
}
@@ -317,7 +353,8 @@ impl WeightInfo for () {
// Storage: Assets Account (r:2 w:2)
// Storage: System Account (r:1 w:1)
fn transfer_keep_alive() -> Weight {
Weight::from_ref_time(42_300_000 as u64)
// Minimum execution time: 47_028 nanoseconds.
Weight::from_ref_time(47_571_000 as u64)
.saturating_add(RocksDbWeight::get().reads(4 as u64))
.saturating_add(RocksDbWeight::get().writes(4 as u64))
}
@@ -325,93 +362,108 @@ impl WeightInfo for () {
// Storage: Assets Account (r:2 w:2)
// Storage: System Account (r:1 w:1)
fn force_transfer() -> Weight {
Weight::from_ref_time(47_946_000 as u64)
// Minimum execution time: 57_069 nanoseconds.
Weight::from_ref_time(58_245_000 as u64)
.saturating_add(RocksDbWeight::get().reads(4 as u64))
.saturating_add(RocksDbWeight::get().writes(4 as u64))
}
// Storage: Assets Asset (r:1 w:0)
// Storage: Assets Account (r:1 w:1)
fn freeze() -> Weight {
Weight::from_ref_time(21_670_000 as u64)
// Minimum execution time: 26_823 nanoseconds.
Weight::from_ref_time(27_689_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:0)
// Storage: Assets Account (r:1 w:1)
fn thaw() -> Weight {
Weight::from_ref_time(21_503_000 as u64)
// Minimum execution time: 26_984 nanoseconds.
Weight::from_ref_time(27_591_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
fn freeze_asset() -> Weight {
Weight::from_ref_time(18_158_000 as u64)
// Minimum execution time: 23_803 nanoseconds.
Weight::from_ref_time(24_269_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
fn thaw_asset() -> Weight {
Weight::from_ref_time(18_525_000 as u64)
// Minimum execution time: 22_977 nanoseconds.
Weight::from_ref_time(23_527_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
// Storage: Assets Metadata (r:1 w:0)
fn transfer_ownership() -> Weight {
Weight::from_ref_time(19_858_000 as u64)
// Minimum execution time: 23_815 nanoseconds.
Weight::from_ref_time(24_597_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
fn set_team() -> Weight {
Weight::from_ref_time(18_045_000 as u64)
// Minimum execution time: 22_691 nanoseconds.
Weight::from_ref_time(23_173_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:0)
// Storage: Assets Metadata (r:1 w:1)
fn set_metadata(n: u32, s: u32, ) -> Weight {
Weight::from_ref_time(32_395_000 as u64)
// Standard Error: 0
.saturating_add(Weight::from_ref_time(5_000 as u64).saturating_mul(n as u64))
// Standard Error: 0
.saturating_add(Weight::from_ref_time(2_000 as u64).saturating_mul(s as u64))
/// The range of component `n` is `[0, 50]`.
/// The range of component `s` is `[0, 50]`.
fn set_metadata(_n: u32, _s: u32, ) -> Weight {
// Minimum execution time: 40_675 nanoseconds.
Weight::from_ref_time(42_869_113 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:0)
// Storage: Assets Metadata (r:1 w:1)
fn clear_metadata() -> Weight {
Weight::from_ref_time(32_893_000 as u64)
// Minimum execution time: 42_361 nanoseconds.
Weight::from_ref_time(42_912_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:0)
// Storage: Assets Metadata (r:1 w:1)
fn force_set_metadata(_n: u32, s: u32, ) -> Weight {
Weight::from_ref_time(19_586_000 as u64)
// Standard Error: 0
.saturating_add(Weight::from_ref_time(1_000 as u64).saturating_mul(s as u64))
/// The range of component `n` is `[0, 50]`.
/// The range of component `s` is `[0, 50]`.
fn force_set_metadata(n: u32, s: u32, ) -> Weight {
// Minimum execution time: 22_998 nanoseconds.
Weight::from_ref_time(23_844_675 as u64)
// Standard Error: 506
.saturating_add(Weight::from_ref_time(2_874 as u64).saturating_mul(n as u64))
// Standard Error: 506
.saturating_add(Weight::from_ref_time(3_817 as u64).saturating_mul(s as u64))
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:0)
// Storage: Assets Metadata (r:1 w:1)
fn force_clear_metadata() -> Weight {
Weight::from_ref_time(32_478_000 as u64)
// Minimum execution time: 42_305 nanoseconds.
Weight::from_ref_time(42_678_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
fn force_asset_status() -> Weight {
Weight::from_ref_time(17_143_000 as u64)
// Minimum execution time: 22_052 nanoseconds.
Weight::from_ref_time(22_610_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Assets Asset (r:1 w:1)
// Storage: Assets Approvals (r:1 w:1)
fn approve_transfer() -> Weight {
Weight::from_ref_time(36_389_000 as u64)
// Minimum execution time: 44_900 nanoseconds.
Weight::from_ref_time(46_032_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
@@ -420,21 +472,24 @@ impl WeightInfo for () {
// Storage: Assets Account (r:2 w:2)
// Storage: System Account (r:1 w:1)
fn transfer_approved() -> Weight {
Weight::from_ref_time(61_854_000 as u64)
// Minimum execution time: 72_261 nanoseconds.
Weight::from_ref_time(73_186_000 as u64)
.saturating_add(RocksDbWeight::get().reads(5 as u64))
.saturating_add(RocksDbWeight::get().writes(5 as u64))
}
// Storage: Assets Asset (r:1 w:1)
// Storage: Assets Approvals (r:1 w:1)
fn cancel_approval() -> Weight {
Weight::from_ref_time(36_759_000 as u64)
// Minimum execution time: 47_268 nanoseconds.
Weight::from_ref_time(47_712_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
// Storage: Assets Asset (r:1 w:1)
// Storage: Assets Approvals (r:1 w:1)
fn force_cancel_approval() -> Weight {
Weight::from_ref_time(37_753_000 as u64)
// Minimum execution time: 47_363 nanoseconds.
Weight::from_ref_time(48_696_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
+48 -14
View File
@@ -26,6 +26,7 @@ pub struct Analysis {
pub names: Vec<String>,
pub value_dists: Option<Vec<(Vec<u32>, u128, u128)>>,
pub errors: Option<Vec<u128>>,
pub minimum: u128,
selector: BenchmarkSelector,
}
@@ -49,7 +50,10 @@ fn mul_1000_into_u128(value: f64) -> u128 {
impl BenchmarkSelector {
fn scale_and_cast_weight(self, value: f64, round_up: bool) -> u128 {
if let BenchmarkSelector::ExtrinsicTime = self {
mul_1000_into_u128(value)
// We add a very slight bias here to counteract the numerical imprecision of the linear
// regression where due to rounding issues it can emit a number like `2999999.999999998`
// which we most certainly always want to round up instead of truncating.
mul_1000_into_u128(value + 0.000_000_005)
} else {
if round_up {
(value + 0.5) as u128
@@ -74,6 +78,24 @@ impl BenchmarkSelector {
value
}
}
fn get_value(self, result: &BenchmarkResult) -> u128 {
match self {
BenchmarkSelector::ExtrinsicTime => result.extrinsic_time,
BenchmarkSelector::StorageRootTime => result.storage_root_time,
BenchmarkSelector::Reads => result.reads.into(),
BenchmarkSelector::Writes => result.writes.into(),
BenchmarkSelector::ProofSize => result.proof_size.into(),
}
}
fn get_minimum(self, results: &[BenchmarkResult]) -> u128 {
results
.iter()
.map(|result| self.get_value(result))
.min()
.expect("results cannot be empty")
}
}
#[derive(Debug)]
@@ -109,8 +131,8 @@ impl TryFrom<Option<String>> for AnalysisChoice {
}
fn raw_linear_regression(
xs: Vec<f64>,
ys: Vec<f64>,
xs: &[f64],
ys: &[f64],
x_vars: usize,
with_intercept: bool,
) -> Option<(f64, Vec<f64>, Vec<f64>)> {
@@ -147,6 +169,14 @@ fn linear_regression(
mut ys: Vec<f64>,
x_vars: usize,
) -> Option<(f64, Vec<f64>, Vec<f64>)> {
let (intercept, params, errors) = raw_linear_regression(&xs, &ys, x_vars, true)?;
if intercept > 0.0 {
return Some((intercept, params, errors[1..].to_vec()))
}
// The intercept is negative.
// The weights must be always positive, so we can't have that.
let mut min = ys[0];
for &value in &ys {
if value < min {
@@ -158,8 +188,9 @@ fn linear_regression(
*value -= min;
}
let (intercept, params, errors) = raw_linear_regression(xs, ys, x_vars, false)?;
Some((intercept + min, params, errors[1..].to_vec()))
let (intercept, params, errors) = raw_linear_regression(&xs, &ys, x_vars, false)?;
assert!(intercept.abs() <= 0.0001);
Some((min, params, errors[1..].to_vec()))
}
impl Analysis {
@@ -190,6 +221,7 @@ impl Analysis {
names: Vec::new(),
value_dists: None,
errors: None,
minimum: selector.get_minimum(&r),
selector,
})
}
@@ -289,6 +321,7 @@ impl Analysis {
names: results.into_iter().map(|x| x.0).collect::<Vec<_>>(),
value_dists: None,
errors: None,
minimum: selector.get_minimum(&r),
selector,
})
}
@@ -361,6 +394,7 @@ impl Analysis {
.map(|value| selector.scale_and_cast_weight(value, false))
.collect(),
),
minimum: selector.get_minimum(&r),
selector,
})
}
@@ -392,8 +426,9 @@ impl Analysis {
let names = median_slopes.names;
let value_dists = min_squares.value_dists;
let errors = min_squares.errors;
let minimum = selector.get_minimum(&r);
Some(Self { base, slopes, names, value_dists, errors, selector })
Some(Self { base, slopes, names, value_dists, errors, selector, minimum })
}
}
@@ -533,8 +568,7 @@ mod tests {
16.0, 17.0, 18.0, 19.0, 20.0,
];
let (intercept, params, errors) =
raw_linear_regression(xs.clone(), ys.clone(), 1, true).unwrap();
let (intercept, params, errors) = raw_linear_regression(&xs, &ys, 1, true).unwrap();
assert_eq!(intercept as i64, -2712997);
assert_eq!(params.len(), 1);
assert_eq!(params[0] as i64, 34444926);
@@ -688,15 +722,15 @@ mod tests {
let extrinsic_time =
Analysis::min_squares_iqr(&data, BenchmarkSelector::ExtrinsicTime).unwrap();
assert_eq!(extrinsic_time.base, 11_500_000_000);
assert_eq!(extrinsic_time.slopes, vec![630635838, 23699421]);
assert_eq!(extrinsic_time.base, 10_000_000_000);
assert_eq!(extrinsic_time.slopes, vec![1000000000, 100000000]);
let reads = Analysis::min_squares_iqr(&data, BenchmarkSelector::Reads).unwrap();
assert_eq!(reads.base, 3);
assert_eq!(reads.base, 2);
assert_eq!(reads.slopes, vec![1, 0]);
let writes = Analysis::min_squares_iqr(&data, BenchmarkSelector::Writes).unwrap();
assert_eq!(writes.base, 2);
assert_eq!(writes.base, 0);
assert_eq!(writes.slopes, vec![0, 2]);
}
@@ -711,7 +745,7 @@ mod tests {
let extrinsic_time =
Analysis::min_squares_iqr(&data, BenchmarkSelector::ExtrinsicTime).unwrap();
assert_eq!(extrinsic_time.base, 2_000_000_000);
assert_eq!(extrinsic_time.slopes, vec![4_000_000_000]);
assert_eq!(extrinsic_time.base, 3_000_000_000);
assert_eq!(extrinsic_time.slopes, vec![3_000_000_000]);
}
}
+126 -73
View File
@@ -18,12 +18,12 @@
//! Autogenerated weights for pallet_uniques
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2022-07-13, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! HOSTNAME: `test-bench-bot`, CPU: `Intel(R) Xeon(R) CPU @ 3.10GHz`
//! DATE: 2022-10-20, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
// Executed Command:
// target/production/substrate
// /home/benchbot/cargo_target_dir/production/substrate
// benchmark
// pallet
// --steps=50
@@ -32,6 +32,7 @@
// --execution=wasm
// --wasm-execution=compiled
// --heap-pages=4096
// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/substrate/.git/.artifacts/bench.json
// --pallet=pallet_uniques
// --chain=dev
// --output=./frame/uniques/src/weights.rs
@@ -80,14 +81,16 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques ClassAccount (r:0 w:1)
fn create() -> Weight {
Weight::from_ref_time(33_075_000 as u64)
// Minimum execution time: 32_901 nanoseconds.
Weight::from_ref_time(33_628_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques ClassAccount (r:0 w:1)
fn force_create() -> Weight {
Weight::from_ref_time(19_528_000 as u64)
// Minimum execution time: 21_633 nanoseconds.
Weight::from_ref_time(22_380_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
@@ -103,13 +106,14 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
/// The range of component `m` is `[0, 1000]`.
/// The range of component `a` is `[0, 1000]`.
fn destroy(n: u32, m: u32, a: u32, ) -> Weight {
Weight::from_ref_time(0 as u64)
// Standard Error: 25_000
.saturating_add(Weight::from_ref_time(13_639_000 as u64).saturating_mul(n as u64))
// Standard Error: 25_000
.saturating_add(Weight::from_ref_time(2_393_000 as u64).saturating_mul(m as u64))
// Standard Error: 25_000
.saturating_add(Weight::from_ref_time(2_217_000 as u64).saturating_mul(a as u64))
// Minimum execution time: 2_429_508 nanoseconds.
Weight::from_ref_time(2_446_263_000 as u64)
// Standard Error: 28_236
.saturating_add(Weight::from_ref_time(8_477_090 as u64).saturating_mul(n as u64))
// Standard Error: 28_236
.saturating_add(Weight::from_ref_time(314_268 as u64).saturating_mul(m as u64))
// Standard Error: 28_236
.saturating_add(Weight::from_ref_time(249_624 as u64).saturating_mul(a as u64))
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().reads((1 as u64).saturating_mul(n as u64)))
.saturating_add(T::DbWeight::get().writes(4 as u64))
@@ -122,7 +126,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Uniques CollectionMaxSupply (r:1 w:0)
// Storage: Uniques Account (r:0 w:1)
fn mint() -> Weight {
Weight::from_ref_time(42_146_000 as u64)
// Minimum execution time: 41_938 nanoseconds.
Weight::from_ref_time(42_814_000 as u64)
.saturating_add(T::DbWeight::get().reads(3 as u64))
.saturating_add(T::DbWeight::get().writes(3 as u64))
}
@@ -131,7 +136,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Uniques Account (r:0 w:1)
// Storage: Uniques ItemPriceOf (r:0 w:1)
fn burn() -> Weight {
Weight::from_ref_time(42_960_000 as u64)
// Minimum execution time: 43_593 nanoseconds.
Weight::from_ref_time(44_420_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(4 as u64))
}
@@ -140,17 +146,19 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Uniques Account (r:0 w:2)
// Storage: Uniques ItemPriceOf (r:0 w:1)
fn transfer() -> Weight {
Weight::from_ref_time(33_025_000 as u64)
// Minimum execution time: 34_037 nanoseconds.
Weight::from_ref_time(34_848_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(4 as u64))
}
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques Asset (r:100 w:100)
// Storage: Uniques Asset (r:102 w:102)
/// The range of component `i` is `[0, 5000]`.
fn redeposit(i: u32, ) -> Weight {
Weight::from_ref_time(0 as u64)
// Standard Error: 24_000
.saturating_add(Weight::from_ref_time(15_540_000 as u64).saturating_mul(i as u64))
// Minimum execution time: 23_295 nanoseconds.
Weight::from_ref_time(23_482_000 as u64)
// Standard Error: 9_490
.saturating_add(Weight::from_ref_time(10_899_320 as u64).saturating_mul(i as u64))
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().reads((1 as u64).saturating_mul(i as u64)))
.saturating_add(T::DbWeight::get().writes(1 as u64))
@@ -159,26 +167,30 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Uniques Asset (r:1 w:1)
// Storage: Uniques Class (r:1 w:0)
fn freeze() -> Weight {
Weight::from_ref_time(25_194_000 as u64)
// Minimum execution time: 27_005 nanoseconds.
Weight::from_ref_time(27_344_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Uniques Asset (r:1 w:1)
// Storage: Uniques Class (r:1 w:0)
fn thaw() -> Weight {
Weight::from_ref_time(25_397_000 as u64)
// Minimum execution time: 26_815 nanoseconds.
Weight::from_ref_time(27_400_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Uniques Class (r:1 w:1)
fn freeze_collection() -> Weight {
Weight::from_ref_time(19_278_000 as u64)
// Minimum execution time: 21_988 nanoseconds.
Weight::from_ref_time(22_596_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Uniques Class (r:1 w:1)
fn thaw_collection() -> Weight {
Weight::from_ref_time(19_304_000 as u64)
// Minimum execution time: 21_886 nanoseconds.
Weight::from_ref_time(22_617_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
@@ -186,20 +198,23 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques ClassAccount (r:0 w:2)
fn transfer_ownership() -> Weight {
Weight::from_ref_time(28_615_000 as u64)
// Minimum execution time: 30_241 nanoseconds.
Weight::from_ref_time(30_677_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(4 as u64))
}
// Storage: Uniques Class (r:1 w:1)
fn set_team() -> Weight {
Weight::from_ref_time(19_943_000 as u64)
// Minimum execution time: 23_011 nanoseconds.
Weight::from_ref_time(23_796_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques ClassAccount (r:0 w:1)
fn force_item_status() -> Weight {
Weight::from_ref_time(22_583_000 as u64)
// Minimum execution time: 25_739 nanoseconds.
Weight::from_ref_time(26_572_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
@@ -207,7 +222,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Uniques InstanceMetadataOf (r:1 w:0)
// Storage: Uniques Attribute (r:1 w:1)
fn set_attribute() -> Weight {
Weight::from_ref_time(47_520_000 as u64)
// Minimum execution time: 48_486 nanoseconds.
Weight::from_ref_time(49_029_000 as u64)
.saturating_add(T::DbWeight::get().reads(3 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
@@ -215,69 +231,79 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Uniques InstanceMetadataOf (r:1 w:0)
// Storage: Uniques Attribute (r:1 w:1)
fn clear_attribute() -> Weight {
Weight::from_ref_time(45_316_000 as u64)
// Minimum execution time: 47_408 nanoseconds.
Weight::from_ref_time(48_753_000 as u64)
.saturating_add(T::DbWeight::get().reads(3 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques InstanceMetadataOf (r:1 w:1)
fn set_metadata() -> Weight {
Weight::from_ref_time(38_391_000 as u64)
// Minimum execution time: 40_085 nanoseconds.
Weight::from_ref_time(40_625_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques InstanceMetadataOf (r:1 w:1)
fn clear_metadata() -> Weight {
Weight::from_ref_time(38_023_000 as u64)
// Minimum execution time: 40_546 nanoseconds.
Weight::from_ref_time(41_113_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques ClassMetadataOf (r:1 w:1)
fn set_collection_metadata() -> Weight {
Weight::from_ref_time(37_398_000 as u64)
// Minimum execution time: 39_902 nanoseconds.
Weight::from_ref_time(40_599_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
// Storage: Uniques Class (r:1 w:0)
// Storage: Uniques ClassMetadataOf (r:1 w:1)
fn clear_collection_metadata() -> Weight {
Weight::from_ref_time(35_621_000 as u64)
// Minimum execution time: 37_597 nanoseconds.
Weight::from_ref_time(37_964_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Uniques Class (r:1 w:0)
// Storage: Uniques Asset (r:1 w:1)
fn approve_transfer() -> Weight {
Weight::from_ref_time(25_856_000 as u64)
// Minimum execution time: 28_719 nanoseconds.
Weight::from_ref_time(29_213_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Uniques Class (r:1 w:0)
// Storage: Uniques Asset (r:1 w:1)
fn cancel_approval() -> Weight {
Weight::from_ref_time(26_098_000 as u64)
// Minimum execution time: 27_608 nanoseconds.
Weight::from_ref_time(28_096_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Uniques OwnershipAcceptance (r:1 w:1)
fn set_accept_ownership() -> Weight {
Weight::from_ref_time(24_076_000 as u64)
// Minimum execution time: 25_568 nanoseconds.
Weight::from_ref_time(26_098_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Uniques CollectionMaxSupply (r:1 w:1)
// Storage: Uniques Class (r:1 w:0)
fn set_collection_max_supply() -> Weight {
Weight::from_ref_time(22_035_000 as u64)
// Minimum execution time: 24_521 nanoseconds.
Weight::from_ref_time(25_062_000 as u64)
.saturating_add(T::DbWeight::get().reads(2 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: Uniques Asset (r:1 w:0)
// Storage: Uniques ItemPriceOf (r:0 w:1)
fn set_price() -> Weight {
Weight::from_ref_time(22_534_000 as u64)
// Minimum execution time: 25_337 nanoseconds.
Weight::from_ref_time(25_902_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
@@ -286,7 +312,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Uniques Class (r:1 w:0)
// Storage: Uniques Account (r:0 w:2)
fn buy_item() -> Weight {
Weight::from_ref_time(45_272_000 as u64)
// Minimum execution time: 46_736 nanoseconds.
Weight::from_ref_time(47_264_000 as u64)
.saturating_add(T::DbWeight::get().reads(3 as u64))
.saturating_add(T::DbWeight::get().writes(4 as u64))
}
@@ -297,14 +324,16 @@ impl WeightInfo for () {
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques ClassAccount (r:0 w:1)
fn create() -> Weight {
Weight::from_ref_time(33_075_000 as u64)
// Minimum execution time: 32_901 nanoseconds.
Weight::from_ref_time(33_628_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques ClassAccount (r:0 w:1)
fn force_create() -> Weight {
Weight::from_ref_time(19_528_000 as u64)
// Minimum execution time: 21_633 nanoseconds.
Weight::from_ref_time(22_380_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
@@ -320,13 +349,14 @@ impl WeightInfo for () {
/// The range of component `m` is `[0, 1000]`.
/// The range of component `a` is `[0, 1000]`.
fn destroy(n: u32, m: u32, a: u32, ) -> Weight {
Weight::from_ref_time(0 as u64)
// Standard Error: 25_000
.saturating_add(Weight::from_ref_time(13_639_000 as u64).saturating_mul(n as u64))
// Standard Error: 25_000
.saturating_add(Weight::from_ref_time(2_393_000 as u64).saturating_mul(m as u64))
// Standard Error: 25_000
.saturating_add(Weight::from_ref_time(2_217_000 as u64).saturating_mul(a as u64))
// Minimum execution time: 2_429_508 nanoseconds.
Weight::from_ref_time(2_446_263_000 as u64)
// Standard Error: 28_236
.saturating_add(Weight::from_ref_time(8_477_090 as u64).saturating_mul(n as u64))
// Standard Error: 28_236
.saturating_add(Weight::from_ref_time(314_268 as u64).saturating_mul(m as u64))
// Standard Error: 28_236
.saturating_add(Weight::from_ref_time(249_624 as u64).saturating_mul(a as u64))
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().reads((1 as u64).saturating_mul(n as u64)))
.saturating_add(RocksDbWeight::get().writes(4 as u64))
@@ -339,7 +369,8 @@ impl WeightInfo for () {
// Storage: Uniques CollectionMaxSupply (r:1 w:0)
// Storage: Uniques Account (r:0 w:1)
fn mint() -> Weight {
Weight::from_ref_time(42_146_000 as u64)
// Minimum execution time: 41_938 nanoseconds.
Weight::from_ref_time(42_814_000 as u64)
.saturating_add(RocksDbWeight::get().reads(3 as u64))
.saturating_add(RocksDbWeight::get().writes(3 as u64))
}
@@ -348,7 +379,8 @@ impl WeightInfo for () {
// Storage: Uniques Account (r:0 w:1)
// Storage: Uniques ItemPriceOf (r:0 w:1)
fn burn() -> Weight {
Weight::from_ref_time(42_960_000 as u64)
// Minimum execution time: 43_593 nanoseconds.
Weight::from_ref_time(44_420_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(4 as u64))
}
@@ -357,17 +389,19 @@ impl WeightInfo for () {
// Storage: Uniques Account (r:0 w:2)
// Storage: Uniques ItemPriceOf (r:0 w:1)
fn transfer() -> Weight {
Weight::from_ref_time(33_025_000 as u64)
// Minimum execution time: 34_037 nanoseconds.
Weight::from_ref_time(34_848_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(4 as u64))
}
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques Asset (r:100 w:100)
// Storage: Uniques Asset (r:102 w:102)
/// The range of component `i` is `[0, 5000]`.
fn redeposit(i: u32, ) -> Weight {
Weight::from_ref_time(0 as u64)
// Standard Error: 24_000
.saturating_add(Weight::from_ref_time(15_540_000 as u64).saturating_mul(i as u64))
// Minimum execution time: 23_295 nanoseconds.
Weight::from_ref_time(23_482_000 as u64)
// Standard Error: 9_490
.saturating_add(Weight::from_ref_time(10_899_320 as u64).saturating_mul(i as u64))
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().reads((1 as u64).saturating_mul(i as u64)))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
@@ -376,26 +410,30 @@ impl WeightInfo for () {
// Storage: Uniques Asset (r:1 w:1)
// Storage: Uniques Class (r:1 w:0)
fn freeze() -> Weight {
Weight::from_ref_time(25_194_000 as u64)
// Minimum execution time: 27_005 nanoseconds.
Weight::from_ref_time(27_344_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Uniques Asset (r:1 w:1)
// Storage: Uniques Class (r:1 w:0)
fn thaw() -> Weight {
Weight::from_ref_time(25_397_000 as u64)
// Minimum execution time: 26_815 nanoseconds.
Weight::from_ref_time(27_400_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Uniques Class (r:1 w:1)
fn freeze_collection() -> Weight {
Weight::from_ref_time(19_278_000 as u64)
// Minimum execution time: 21_988 nanoseconds.
Weight::from_ref_time(22_596_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Uniques Class (r:1 w:1)
fn thaw_collection() -> Weight {
Weight::from_ref_time(19_304_000 as u64)
// Minimum execution time: 21_886 nanoseconds.
Weight::from_ref_time(22_617_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
@@ -403,20 +441,23 @@ impl WeightInfo for () {
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques ClassAccount (r:0 w:2)
fn transfer_ownership() -> Weight {
Weight::from_ref_time(28_615_000 as u64)
// Minimum execution time: 30_241 nanoseconds.
Weight::from_ref_time(30_677_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(4 as u64))
}
// Storage: Uniques Class (r:1 w:1)
fn set_team() -> Weight {
Weight::from_ref_time(19_943_000 as u64)
// Minimum execution time: 23_011 nanoseconds.
Weight::from_ref_time(23_796_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques ClassAccount (r:0 w:1)
fn force_item_status() -> Weight {
Weight::from_ref_time(22_583_000 as u64)
// Minimum execution time: 25_739 nanoseconds.
Weight::from_ref_time(26_572_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
@@ -424,7 +465,8 @@ impl WeightInfo for () {
// Storage: Uniques InstanceMetadataOf (r:1 w:0)
// Storage: Uniques Attribute (r:1 w:1)
fn set_attribute() -> Weight {
Weight::from_ref_time(47_520_000 as u64)
// Minimum execution time: 48_486 nanoseconds.
Weight::from_ref_time(49_029_000 as u64)
.saturating_add(RocksDbWeight::get().reads(3 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
@@ -432,69 +474,79 @@ impl WeightInfo for () {
// Storage: Uniques InstanceMetadataOf (r:1 w:0)
// Storage: Uniques Attribute (r:1 w:1)
fn clear_attribute() -> Weight {
Weight::from_ref_time(45_316_000 as u64)
// Minimum execution time: 47_408 nanoseconds.
Weight::from_ref_time(48_753_000 as u64)
.saturating_add(RocksDbWeight::get().reads(3 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques InstanceMetadataOf (r:1 w:1)
fn set_metadata() -> Weight {
Weight::from_ref_time(38_391_000 as u64)
// Minimum execution time: 40_085 nanoseconds.
Weight::from_ref_time(40_625_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques InstanceMetadataOf (r:1 w:1)
fn clear_metadata() -> Weight {
Weight::from_ref_time(38_023_000 as u64)
// Minimum execution time: 40_546 nanoseconds.
Weight::from_ref_time(41_113_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
// Storage: Uniques Class (r:1 w:1)
// Storage: Uniques ClassMetadataOf (r:1 w:1)
fn set_collection_metadata() -> Weight {
Weight::from_ref_time(37_398_000 as u64)
// Minimum execution time: 39_902 nanoseconds.
Weight::from_ref_time(40_599_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(2 as u64))
}
// Storage: Uniques Class (r:1 w:0)
// Storage: Uniques ClassMetadataOf (r:1 w:1)
fn clear_collection_metadata() -> Weight {
Weight::from_ref_time(35_621_000 as u64)
// Minimum execution time: 37_597 nanoseconds.
Weight::from_ref_time(37_964_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Uniques Class (r:1 w:0)
// Storage: Uniques Asset (r:1 w:1)
fn approve_transfer() -> Weight {
Weight::from_ref_time(25_856_000 as u64)
// Minimum execution time: 28_719 nanoseconds.
Weight::from_ref_time(29_213_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Uniques Class (r:1 w:0)
// Storage: Uniques Asset (r:1 w:1)
fn cancel_approval() -> Weight {
Weight::from_ref_time(26_098_000 as u64)
// Minimum execution time: 27_608 nanoseconds.
Weight::from_ref_time(28_096_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Uniques OwnershipAcceptance (r:1 w:1)
fn set_accept_ownership() -> Weight {
Weight::from_ref_time(24_076_000 as u64)
// Minimum execution time: 25_568 nanoseconds.
Weight::from_ref_time(26_098_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Uniques CollectionMaxSupply (r:1 w:1)
// Storage: Uniques Class (r:1 w:0)
fn set_collection_max_supply() -> Weight {
Weight::from_ref_time(22_035_000 as u64)
// Minimum execution time: 24_521 nanoseconds.
Weight::from_ref_time(25_062_000 as u64)
.saturating_add(RocksDbWeight::get().reads(2 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
// Storage: Uniques Asset (r:1 w:0)
// Storage: Uniques ItemPriceOf (r:0 w:1)
fn set_price() -> Weight {
Weight::from_ref_time(22_534_000 as u64)
// Minimum execution time: 25_337 nanoseconds.
Weight::from_ref_time(25_902_000 as u64)
.saturating_add(RocksDbWeight::get().reads(1 as u64))
.saturating_add(RocksDbWeight::get().writes(1 as u64))
}
@@ -503,7 +555,8 @@ impl WeightInfo for () {
// Storage: Uniques Class (r:1 w:0)
// Storage: Uniques Account (r:0 w:2)
fn buy_item() -> Weight {
Weight::from_ref_time(45_272_000 as u64)
// Minimum execution time: 46_736 nanoseconds.
Weight::from_ref_time(47_264_000 as u64)
.saturating_add(RocksDbWeight::get().reads(3 as u64))
.saturating_add(RocksDbWeight::get().writes(4 as u64))
}
@@ -33,6 +33,7 @@ impl<T: frame_system::Config> {{pallet}}::WeightInfo for WeightInfo<T> {
{{~#each benchmark.components as |c| ~}}
{{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}}
) -> Weight {
// Minimum execution time: {{underscore benchmark.min_execution_time}} nanoseconds.
Weight::from_ref_time({{underscore benchmark.base_weight}} as u64)
{{#each benchmark.component_weight as |cw|}}
// Standard Error: {{underscore cw.error}}
@@ -69,6 +69,8 @@ struct BenchmarkData {
component_writes: Vec<ComponentSlope>,
component_ranges: Vec<ComponentRange>,
comments: Vec<String>,
#[serde(serialize_with = "string_serialize")]
min_execution_time: u128,
}
// This forwards some specific metadata from the `PalletCmd`
@@ -257,6 +259,7 @@ fn get_benchmark_data(
component_writes: used_writes,
component_ranges,
comments,
min_execution_time: extrinsic_time.minimum,
}
}