mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-18 04:51:01 +00:00
Refactor Benchmarks for Less Wasm Memory Usage (#9373)
* extract repeat out of benchmark * remove r * unused * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/staking/src/weights.rs --template=./.maintain/frame-weight-template.hbs * use linked map to keep order * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Delete pallet_balances.rs * Delete out * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/staking/src/weights.rs --template=./.maintain/frame-weight-template.hbs * steps and repeat to tuple (current_*, total_*) * idea for list command * fmt * use benchmark list in cli * handle steps in cli * move log update to cli * fmt * remove old todo * line width * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * benchmark metadata function * don't need this warm up * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * fix warnings * fix node-template * fix * fmt * line width * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/staking/src/weights.rs --template=./.maintain/frame-weight-template.hbs * improve docs * improve cli * fix format * fix bug? * Revert "fix bug?" This reverts commit 8051bf1bf9bae862ff28dfff386e7045cd3f045e. * skip frame-metadata * extract repeat out of benchmark * remove r * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/staking/src/weights.rs --template=./.maintain/frame-weight-template.hbs * use linked map to keep order * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Delete pallet_balances.rs * Delete out * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/staking/src/weights.rs --template=./.maintain/frame-weight-template.hbs * steps and repeat to tuple (current_*, total_*) * idea for list command * fmt * use benchmark list in cli * handle steps in cli * move log update to cli * remove old todo * line width * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * benchmark metadata function * don't need this warm up * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs * fix warnings * fix node-template * fix * fmt * line width * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_staking --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/staking/src/weights.rs --template=./.maintain/frame-weight-template.hbs * improve docs * improve cli * fix format * fix bug? * Revert "fix bug?" This reverts commit 8051bf1bf9bae862ff28dfff386e7045cd3f045e. * skip frame-metadata * Update .gitlab-ci.yml * fix import * Update .gitlab-ci.yml Co-authored-by: Parity Benchmarking Bot <admin@parity.io>
This commit is contained in:
@@ -17,8 +17,8 @@
|
||||
|
||||
//! Autogenerated weights for pallet_balances
|
||||
//!
|
||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0
|
||||
//! DATE: 2021-06-19, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||
//! DATE: 2021-07-30, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128
|
||||
|
||||
// Executed Command:
|
||||
@@ -56,33 +56,39 @@ pub trait WeightInfo {
|
||||
/// Weights for pallet_balances using the Substrate node and recommended hardware.
|
||||
pub struct SubstrateWeight<T>(PhantomData<T>);
|
||||
impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn transfer() -> Weight {
|
||||
(73_268_000 as Weight)
|
||||
(78_358_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn transfer_keep_alive() -> Weight {
|
||||
(54_881_000 as Weight)
|
||||
(59_001_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn set_balance_creating() -> Weight {
|
||||
(29_853_000 as Weight)
|
||||
(32_698_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn set_balance_killing() -> Weight {
|
||||
(36_007_000 as Weight)
|
||||
(38_746_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: System Account (r:2 w:2)
|
||||
fn force_transfer() -> Weight {
|
||||
(72_541_000 as Weight)
|
||||
(77_622_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(2 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as Weight))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn transfer_all() -> Weight {
|
||||
(67_360_000 as Weight)
|
||||
(72_020_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
@@ -90,33 +96,39 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
|
||||
// For backwards compatibility and tests
|
||||
impl WeightInfo for () {
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn transfer() -> Weight {
|
||||
(73_268_000 as Weight)
|
||||
(78_358_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn transfer_keep_alive() -> Weight {
|
||||
(54_881_000 as Weight)
|
||||
(59_001_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn set_balance_creating() -> Weight {
|
||||
(29_853_000 as Weight)
|
||||
(32_698_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn set_balance_killing() -> Weight {
|
||||
(36_007_000 as Weight)
|
||||
(38_746_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: System Account (r:2 w:2)
|
||||
fn force_transfer() -> Weight {
|
||||
(72_541_000 as Weight)
|
||||
(77_622_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
|
||||
}
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn transfer_all() -> Weight {
|
||||
(67_360_000 as Weight)
|
||||
(72_020_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
|
||||
@@ -711,8 +711,8 @@ macro_rules! impl_benchmark {
|
||||
extrinsic: &[u8],
|
||||
lowest_range_values: &[u32],
|
||||
highest_range_values: &[u32],
|
||||
steps: &[u32],
|
||||
repeat: u32,
|
||||
steps: (u32, u32),
|
||||
_repeat: (u32, u32),
|
||||
whitelist: &[$crate::TrackedStorageKey],
|
||||
verify: bool,
|
||||
) -> Result<$crate::Vec<$crate::BenchmarkResults>, &'static str> {
|
||||
@@ -724,9 +724,6 @@ macro_rules! impl_benchmark {
|
||||
_ => return Err("Could not find extrinsic."),
|
||||
};
|
||||
let mut results: $crate::Vec<$crate::BenchmarkResults> = $crate::Vec::new();
|
||||
if repeat == 0 {
|
||||
return Ok(results);
|
||||
}
|
||||
|
||||
// Add whitelist to DB including whitelisted caller
|
||||
let mut whitelist = whitelist.to_vec();
|
||||
@@ -737,141 +734,110 @@ macro_rules! impl_benchmark {
|
||||
whitelist.push(whitelisted_caller_key.into());
|
||||
$crate::benchmarking::set_whitelist(whitelist);
|
||||
|
||||
// Warm up the DB
|
||||
$crate::benchmarking::commit_db();
|
||||
$crate::benchmarking::wipe_db();
|
||||
|
||||
let components = <
|
||||
SelectedBenchmark as $crate::BenchmarkingSetup<T $(, $instance)?>
|
||||
>::components(&selected_benchmark);
|
||||
|
||||
let mut progress = $crate::benchmarking::current_time();
|
||||
// Default number of steps for a component.
|
||||
let mut prev_steps = 10;
|
||||
|
||||
let mut repeat_benchmark = |
|
||||
repeat: u32,
|
||||
let do_benchmark = |
|
||||
c: &[($crate::BenchmarkParameter, u32)],
|
||||
results: &mut $crate::Vec<$crate::BenchmarkResults>,
|
||||
verify: bool,
|
||||
step: u32,
|
||||
num_steps: u32,
|
||||
| -> Result<(), &'static str> {
|
||||
// Run the benchmark `repeat` times.
|
||||
for r in 0..repeat {
|
||||
// Set up the externalities environment for the setup we want to
|
||||
// benchmark.
|
||||
let closure_to_benchmark = <
|
||||
SelectedBenchmark as $crate::BenchmarkingSetup<T $(, $instance)?>
|
||||
>::instance(&selected_benchmark, c, verify)?;
|
||||
// Set up the externalities environment for the setup we want to
|
||||
// benchmark.
|
||||
let closure_to_benchmark = <
|
||||
SelectedBenchmark as $crate::BenchmarkingSetup<T $(, $instance)?>
|
||||
>::instance(&selected_benchmark, c, verify)?;
|
||||
|
||||
// Set the block number to at least 1 so events are deposited.
|
||||
if $crate::Zero::is_zero(&frame_system::Pallet::<T>::block_number()) {
|
||||
frame_system::Pallet::<T>::set_block_number(1u32.into());
|
||||
}
|
||||
|
||||
// Commit the externalities to the database, flushing the DB cache.
|
||||
// This will enable worst case scenario for reading from the database.
|
||||
$crate::benchmarking::commit_db();
|
||||
|
||||
// Reset the read/write counter so we don't count operations in the setup process.
|
||||
$crate::benchmarking::reset_read_write_count();
|
||||
|
||||
if verify {
|
||||
closure_to_benchmark()?;
|
||||
} else {
|
||||
// Time the extrinsic logic.
|
||||
$crate::log::trace!(
|
||||
target: "benchmark",
|
||||
"Start Benchmark: {:?}", c
|
||||
);
|
||||
|
||||
let start_pov = $crate::benchmarking::proof_size();
|
||||
let start_extrinsic = $crate::benchmarking::current_time();
|
||||
|
||||
closure_to_benchmark()?;
|
||||
|
||||
let finish_extrinsic = $crate::benchmarking::current_time();
|
||||
let end_pov = $crate::benchmarking::proof_size();
|
||||
|
||||
// Calculate the diff caused by the benchmark.
|
||||
let elapsed_extrinsic = finish_extrinsic.saturating_sub(start_extrinsic);
|
||||
let diff_pov = match (start_pov, end_pov) {
|
||||
(Some(start), Some(end)) => end.saturating_sub(start),
|
||||
_ => Default::default(),
|
||||
};
|
||||
|
||||
// Commit the changes to get proper write count
|
||||
$crate::benchmarking::commit_db();
|
||||
$crate::log::trace!(
|
||||
target: "benchmark",
|
||||
"End Benchmark: {} ns", elapsed_extrinsic
|
||||
);
|
||||
let read_write_count = $crate::benchmarking::read_write_count();
|
||||
$crate::log::trace!(
|
||||
target: "benchmark",
|
||||
"Read/Write Count {:?}", read_write_count
|
||||
);
|
||||
|
||||
let time = $crate::benchmarking::current_time();
|
||||
if time.saturating_sub(progress) > 5000000000 {
|
||||
progress = $crate::benchmarking::current_time();
|
||||
$crate::log::info!(
|
||||
target: "benchmark",
|
||||
"Benchmarking {} {}/{}, run {}/{}",
|
||||
extrinsic,
|
||||
step,
|
||||
num_steps,
|
||||
r,
|
||||
repeat,
|
||||
);
|
||||
}
|
||||
|
||||
// Time the storage root recalculation.
|
||||
let start_storage_root = $crate::benchmarking::current_time();
|
||||
$crate::storage_root();
|
||||
let finish_storage_root = $crate::benchmarking::current_time();
|
||||
let elapsed_storage_root = finish_storage_root - start_storage_root;
|
||||
|
||||
// TODO: Fix memory allocation issue then re-enable
|
||||
// let read_and_written_keys = $crate::benchmarking::get_read_and_written_keys();
|
||||
let read_and_written_keys = Default::default();
|
||||
|
||||
results.push($crate::BenchmarkResults {
|
||||
components: c.to_vec(),
|
||||
extrinsic_time: elapsed_extrinsic,
|
||||
storage_root_time: elapsed_storage_root,
|
||||
reads: read_write_count.0,
|
||||
repeat_reads: read_write_count.1,
|
||||
writes: read_write_count.2,
|
||||
repeat_writes: read_write_count.3,
|
||||
proof_size: diff_pov,
|
||||
keys: read_and_written_keys,
|
||||
});
|
||||
}
|
||||
|
||||
// Wipe the DB back to the genesis state.
|
||||
$crate::benchmarking::wipe_db();
|
||||
// Set the block number to at least 1 so events are deposited.
|
||||
if $crate::Zero::is_zero(&frame_system::Pallet::<T>::block_number()) {
|
||||
frame_system::Pallet::<T>::set_block_number(1u32.into());
|
||||
}
|
||||
|
||||
// Commit the externalities to the database, flushing the DB cache.
|
||||
// This will enable worst case scenario for reading from the database.
|
||||
$crate::benchmarking::commit_db();
|
||||
|
||||
// Reset the read/write counter so we don't count operations in the setup process.
|
||||
$crate::benchmarking::reset_read_write_count();
|
||||
|
||||
if verify {
|
||||
closure_to_benchmark()?;
|
||||
} else {
|
||||
// Time the extrinsic logic.
|
||||
$crate::log::trace!(
|
||||
target: "benchmark",
|
||||
"Start Benchmark: {:?}", c
|
||||
);
|
||||
|
||||
let start_pov = $crate::benchmarking::proof_size();
|
||||
let start_extrinsic = $crate::benchmarking::current_time();
|
||||
|
||||
closure_to_benchmark()?;
|
||||
|
||||
let finish_extrinsic = $crate::benchmarking::current_time();
|
||||
let end_pov = $crate::benchmarking::proof_size();
|
||||
|
||||
// Calculate the diff caused by the benchmark.
|
||||
let elapsed_extrinsic = finish_extrinsic.saturating_sub(start_extrinsic);
|
||||
let diff_pov = match (start_pov, end_pov) {
|
||||
(Some(start), Some(end)) => end.saturating_sub(start),
|
||||
_ => Default::default(),
|
||||
};
|
||||
|
||||
// Commit the changes to get proper write count
|
||||
$crate::benchmarking::commit_db();
|
||||
$crate::log::trace!(
|
||||
target: "benchmark",
|
||||
"End Benchmark: {} ns", elapsed_extrinsic
|
||||
);
|
||||
let read_write_count = $crate::benchmarking::read_write_count();
|
||||
$crate::log::trace!(
|
||||
target: "benchmark",
|
||||
"Read/Write Count {:?}", read_write_count
|
||||
);
|
||||
|
||||
// Time the storage root recalculation.
|
||||
let start_storage_root = $crate::benchmarking::current_time();
|
||||
$crate::storage_root();
|
||||
let finish_storage_root = $crate::benchmarking::current_time();
|
||||
let elapsed_storage_root = finish_storage_root - start_storage_root;
|
||||
|
||||
let read_and_written_keys = $crate::benchmarking::get_read_and_written_keys();
|
||||
|
||||
results.push($crate::BenchmarkResults {
|
||||
components: c.to_vec(),
|
||||
extrinsic_time: elapsed_extrinsic,
|
||||
storage_root_time: elapsed_storage_root,
|
||||
reads: read_write_count.0,
|
||||
repeat_reads: read_write_count.1,
|
||||
writes: read_write_count.2,
|
||||
repeat_writes: read_write_count.3,
|
||||
proof_size: diff_pov,
|
||||
keys: read_and_written_keys,
|
||||
});
|
||||
}
|
||||
|
||||
// Wipe the DB back to the genesis state.
|
||||
$crate::benchmarking::wipe_db();
|
||||
|
||||
Ok(())
|
||||
};
|
||||
|
||||
let (current_step, total_steps) = steps;
|
||||
|
||||
if components.is_empty() {
|
||||
if verify {
|
||||
// If `--verify` is used, run the benchmark once to verify it would complete.
|
||||
repeat_benchmark(1, Default::default(), &mut $crate::Vec::new(), true, 1, 1)?;
|
||||
// The CLI could ask to do more steps than is sensible, so we skip those.
|
||||
if current_step == 0 {
|
||||
if verify {
|
||||
// If `--verify` is used, run the benchmark once to verify it would complete.
|
||||
do_benchmark(Default::default(), &mut $crate::Vec::new(), true)?;
|
||||
}
|
||||
do_benchmark(Default::default(), &mut results, false)?;
|
||||
}
|
||||
repeat_benchmark(repeat, Default::default(), &mut results, false, 1, 1)?;
|
||||
} else {
|
||||
// Select the component we will be benchmarking. Each component will be benchmarked.
|
||||
for (idx, (name, low, high)) in components.iter().enumerate() {
|
||||
// Get the number of steps for this component.
|
||||
let steps = steps.get(idx).cloned().unwrap_or(prev_steps);
|
||||
prev_steps = steps;
|
||||
|
||||
// Skip this loop if steps is zero
|
||||
if steps == 0 { continue }
|
||||
|
||||
let lowest = lowest_range_values.get(idx).cloned().unwrap_or(*low);
|
||||
let highest = highest_range_values.get(idx).cloned().unwrap_or(*high);
|
||||
@@ -879,31 +845,34 @@ macro_rules! impl_benchmark {
|
||||
let diff = highest - lowest;
|
||||
|
||||
// Create up to `STEPS` steps for that component between high and low.
|
||||
let step_size = (diff / steps).max(1);
|
||||
let step_size = (diff / total_steps).max(1);
|
||||
let num_of_steps = diff / step_size + 1;
|
||||
|
||||
for s in 0..num_of_steps {
|
||||
// This is the value we will be testing for component `name`
|
||||
let component_value = lowest + step_size * s;
|
||||
|
||||
// Select the max value for all the other components.
|
||||
let c: $crate::Vec<($crate::BenchmarkParameter, u32)> = components.iter()
|
||||
.enumerate()
|
||||
.map(|(idx, (n, _, h))|
|
||||
if n == name {
|
||||
(*n, component_value)
|
||||
} else {
|
||||
(*n, *highest_range_values.get(idx).unwrap_or(h))
|
||||
}
|
||||
)
|
||||
.collect();
|
||||
|
||||
if verify {
|
||||
// If `--verify` is used, run the benchmark once to verify it would complete.
|
||||
repeat_benchmark(1, &c, &mut $crate::Vec::new(), true, s, num_of_steps)?;
|
||||
}
|
||||
repeat_benchmark(repeat, &c, &mut results, false, s, num_of_steps)?;
|
||||
// The CLI could ask to do more steps than is sensible, so we just skip those.
|
||||
if current_step >= num_of_steps {
|
||||
continue;
|
||||
}
|
||||
|
||||
// This is the value we will be testing for component `name`
|
||||
let component_value = lowest + step_size * current_step;
|
||||
|
||||
// Select the max value for all the other components.
|
||||
let c: $crate::Vec<($crate::BenchmarkParameter, u32)> = components.iter()
|
||||
.enumerate()
|
||||
.map(|(idx, (n, _, h))|
|
||||
if n == name {
|
||||
(*n, component_value)
|
||||
} else {
|
||||
(*n, *highest_range_values.get(idx).unwrap_or(h))
|
||||
}
|
||||
)
|
||||
.collect();
|
||||
|
||||
if verify {
|
||||
// If `--verify` is used, run the benchmark once to verify it would complete.
|
||||
do_benchmark(&c, &mut $crate::Vec::new(), true)?;
|
||||
}
|
||||
do_benchmark(&c, &mut results, false)?;
|
||||
}
|
||||
}
|
||||
return Ok(results);
|
||||
@@ -1253,8 +1222,8 @@ pub fn show_benchmark_debug_info(
|
||||
benchmark: &[u8],
|
||||
lowest_range_values: &sp_std::prelude::Vec<u32>,
|
||||
highest_range_values: &sp_std::prelude::Vec<u32>,
|
||||
steps: &sp_std::prelude::Vec<u32>,
|
||||
repeat: &u32,
|
||||
steps: &(u32, u32),
|
||||
repeat: &(u32, u32),
|
||||
verify: &bool,
|
||||
error_message: &str,
|
||||
) -> sp_runtime::RuntimeString {
|
||||
@@ -1273,8 +1242,8 @@ pub fn show_benchmark_debug_info(
|
||||
.expect("it's all just strings ran through the wasm interface. qed"),
|
||||
lowest_range_values,
|
||||
highest_range_values,
|
||||
steps,
|
||||
repeat,
|
||||
steps.1,
|
||||
repeat.1,
|
||||
verify,
|
||||
error_message,
|
||||
)
|
||||
@@ -1359,62 +1328,70 @@ macro_rules! add_benchmark {
|
||||
verify,
|
||||
extra,
|
||||
} = config;
|
||||
if &pallet[..] == &name_string[..] || &pallet[..] == &b"*"[..] {
|
||||
if &pallet[..] == &b"*"[..] || &benchmark[..] == &b"*"[..] {
|
||||
for benchmark in $( $location )*::benchmarks(*extra).into_iter() {
|
||||
$batches.push($crate::BenchmarkBatch {
|
||||
pallet: name_string.to_vec(),
|
||||
instance: instance_string.to_vec(),
|
||||
benchmark: benchmark.to_vec(),
|
||||
results: $( $location )*::run_benchmark(
|
||||
benchmark,
|
||||
&lowest_range_values[..],
|
||||
&highest_range_values[..],
|
||||
&steps[..],
|
||||
*repeat,
|
||||
whitelist,
|
||||
*verify,
|
||||
).map_err(|e| {
|
||||
$crate::show_benchmark_debug_info(
|
||||
instance_string,
|
||||
benchmark,
|
||||
lowest_range_values,
|
||||
highest_range_values,
|
||||
steps,
|
||||
repeat,
|
||||
verify,
|
||||
e,
|
||||
)
|
||||
})?,
|
||||
});
|
||||
}
|
||||
} else {
|
||||
$batches.push($crate::BenchmarkBatch {
|
||||
pallet: name_string.to_vec(),
|
||||
instance: instance_string.to_vec(),
|
||||
benchmark: benchmark.clone(),
|
||||
results: $( $location )*::run_benchmark(
|
||||
&benchmark[..],
|
||||
&lowest_range_values[..],
|
||||
&highest_range_values[..],
|
||||
&steps[..],
|
||||
*repeat,
|
||||
whitelist,
|
||||
*verify,
|
||||
).map_err(|e| {
|
||||
$crate::show_benchmark_debug_info(
|
||||
instance_string,
|
||||
benchmark,
|
||||
lowest_range_values,
|
||||
highest_range_values,
|
||||
steps,
|
||||
repeat,
|
||||
verify,
|
||||
e,
|
||||
)
|
||||
})?,
|
||||
});
|
||||
}
|
||||
if &pallet[..] == &name_string[..] {
|
||||
$batches.push($crate::BenchmarkBatch {
|
||||
pallet: name_string.to_vec(),
|
||||
instance: instance_string.to_vec(),
|
||||
benchmark: benchmark.clone(),
|
||||
results: $( $location )*::run_benchmark(
|
||||
&benchmark[..],
|
||||
&lowest_range_values[..],
|
||||
&highest_range_values[..],
|
||||
*steps,
|
||||
*repeat,
|
||||
whitelist,
|
||||
*verify,
|
||||
).map_err(|e| {
|
||||
$crate::show_benchmark_debug_info(
|
||||
instance_string,
|
||||
benchmark,
|
||||
lowest_range_values,
|
||||
highest_range_values,
|
||||
steps,
|
||||
repeat,
|
||||
verify,
|
||||
e,
|
||||
)
|
||||
})?
|
||||
});
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/// This macro allows users to easily generate a list of benchmarks for the pallets configured
|
||||
/// in the runtime.
|
||||
///
|
||||
/// To use this macro, first create a an object to store the list:
|
||||
///
|
||||
/// ```ignore
|
||||
/// let mut list = Vec::<BenchmarkList>::new();
|
||||
/// ```
|
||||
///
|
||||
/// Then pass this `list` to the macro, along with the `extra` boolean, the pallet crate, and
|
||||
/// pallet struct:
|
||||
///
|
||||
/// ```ignore
|
||||
/// list_benchmark!(list, extra, pallet_balances, Balances);
|
||||
/// list_benchmark!(list, extra, pallet_session, SessionBench::<Runtime>);
|
||||
/// list_benchmark!(list, extra, frame_system, SystemBench::<Runtime>);
|
||||
/// ```
|
||||
///
|
||||
/// This should match what exists with the `add_benchmark!` macro.
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! list_benchmark {
|
||||
( $list:ident, $extra:ident, $name:path, $( $location:tt )* ) => (
|
||||
let pallet_string = stringify!($name).as_bytes();
|
||||
let instance_string = stringify!( $( $location )* ).as_bytes();
|
||||
let benchmarks = $( $location )*::benchmarks($extra)
|
||||
.iter()
|
||||
.map(|b| b.to_vec())
|
||||
.collect::<Vec<_>>();
|
||||
let pallet_benchmarks = BenchmarkList {
|
||||
pallet: pallet_string.to_vec(),
|
||||
instance: instance_string.to_vec(),
|
||||
benchmarks: benchmarks.to_vec(),
|
||||
};
|
||||
$list.push(pallet_benchmarks)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -103,22 +103,41 @@ pub struct BenchmarkConfig {
|
||||
pub lowest_range_values: Vec<u32>,
|
||||
/// An optional manual override to the highest values used in the `steps` range.
|
||||
pub highest_range_values: Vec<u32>,
|
||||
/// The number of samples to take across the range of values for components.
|
||||
pub steps: Vec<u32>,
|
||||
/// The number of times to repeat a benchmark.
|
||||
pub repeat: u32,
|
||||
/// The number of samples to take across the range of values for components. (current_step,
|
||||
/// total_steps)
|
||||
pub steps: (u32, u32),
|
||||
/// The number times to repeat each benchmark to increase accuracy of results. (current_repeat,
|
||||
/// total_repeat)
|
||||
pub repeat: (u32, u32),
|
||||
/// Enable an extra benchmark iteration which runs the verification logic for a benchmark.
|
||||
pub verify: bool,
|
||||
/// Enable benchmarking of "extra" extrinsics, i.e. those that are not directly used in a pallet.
|
||||
/// Enable benchmarking of "extra" extrinsics, i.e. those that are not directly used in a
|
||||
/// pallet.
|
||||
pub extra: bool,
|
||||
}
|
||||
|
||||
/// A list of benchmarks available for a particular pallet and instance.
|
||||
///
|
||||
/// All `Vec<u8>` must be valid utf8 strings.
|
||||
#[derive(Encode, Decode, Default, Clone, PartialEq, Debug)]
|
||||
pub struct BenchmarkList {
|
||||
pub pallet: Vec<u8>,
|
||||
pub instance: Vec<u8>,
|
||||
pub benchmarks: Vec<Vec<u8>>,
|
||||
}
|
||||
|
||||
sp_api::decl_runtime_apis! {
|
||||
/// Runtime api for benchmarking a FRAME runtime.
|
||||
pub trait Benchmark {
|
||||
/// Get the benchmark metadata available for this runtime.
|
||||
///
|
||||
/// Parameters
|
||||
/// - `extra`: Also list benchmarks marked "extra" which would otherwise not be
|
||||
/// needed for weight calculation.
|
||||
fn benchmark_metadata(extra: bool) -> (Vec<BenchmarkList>, Vec<StorageInfo>);
|
||||
|
||||
/// Dispatch the given benchmark.
|
||||
fn dispatch_benchmark(config: BenchmarkConfig)
|
||||
-> Result<(Vec<BenchmarkBatch>, Vec<StorageInfo>), sp_runtime::RuntimeString>;
|
||||
fn dispatch_benchmark(config: BenchmarkConfig) -> Result<Vec<BenchmarkBatch>, sp_runtime::RuntimeString>;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,16 +235,18 @@ pub trait Benchmarking<T> {
|
||||
/// Parameters
|
||||
/// - `name`: The name of extrinsic function or benchmark you want to benchmark encoded as
|
||||
/// bytes.
|
||||
/// - `steps`: The number of sample points you want to take across the range of parameters.
|
||||
/// - `lowest_range_values`: The lowest number for each range of parameters.
|
||||
/// - `highest_range_values`: The highest number for each range of parameters.
|
||||
/// - `repeat`: The number of times you want to repeat a benchmark.
|
||||
/// - `steps`: The number of sample points you want to take across the range of parameters.
|
||||
/// (current_step, total_steps)
|
||||
/// - `repeat`: The total number times to repeat each benchmark to increase accuracy of results.
|
||||
/// (current_repeat, total_repeats)
|
||||
fn run_benchmark(
|
||||
name: &[u8],
|
||||
lowest_range_values: &[u32],
|
||||
highest_range_values: &[u32],
|
||||
steps: &[u32],
|
||||
repeat: u32,
|
||||
steps: (u32, u32),
|
||||
repeat: (u32, u32),
|
||||
whitelist: &[TrackedStorageKey],
|
||||
verify: bool,
|
||||
) -> Result<Vec<T>, &'static str>;
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
|
||||
//! Autogenerated weights for pallet_staking
|
||||
//!
|
||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 3.0.0
|
||||
//! DATE: 2021-06-19, STEPS: `[50, ]`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||
//! DATE: 2021-07-31, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 128
|
||||
|
||||
// Executed Command:
|
||||
@@ -78,376 +78,664 @@ pub trait WeightInfo {
|
||||
/// Weights for pallet_staking using the Substrate node and recommended hardware.
|
||||
pub struct SubstrateWeight<T>(PhantomData<T>);
|
||||
impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
// Storage: Staking Bonded (r:1 w:1)
|
||||
// Storage: Staking HistoryDepth (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: Staking Payee (r:0 w:1)
|
||||
fn bond() -> Weight {
|
||||
(72_617_000 as Weight)
|
||||
(77_492_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(5 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(4 as Weight))
|
||||
}
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: Staking Bonded (r:1 w:0)
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
fn bond_extra() -> Weight {
|
||||
(55_590_000 as Weight)
|
||||
(59_476_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(3 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as Weight))
|
||||
}
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
// Storage: System Account (r:1 w:1)
|
||||
// Storage: Staking Validators (r:1 w:0)
|
||||
fn unbond() -> Weight {
|
||||
(59_730_000 as Weight)
|
||||
(63_655_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(6 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as Weight))
|
||||
}
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn withdraw_unbonded_update(s: u32, ) -> Weight {
|
||||
(52_279_000 as Weight)
|
||||
(54_534_000 as Weight)
|
||||
// Standard Error: 0
|
||||
.saturating_add((68_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add((24_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(4 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as Weight))
|
||||
}
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: Staking Bonded (r:1 w:1)
|
||||
// Storage: Staking Validators (r:1 w:0)
|
||||
// Storage: Staking Payee (r:0 w:1)
|
||||
// Storage: Staking SlashingSpans (r:1 w:0)
|
||||
// Storage: System Account (r:1 w:1)
|
||||
// Storage: Staking SpanSlash (r:0 w:2)
|
||||
fn withdraw_unbonded_kill(s: u32, ) -> Weight {
|
||||
(86_629_000 as Weight)
|
||||
(89_850_000 as Weight)
|
||||
// Standard Error: 1_000
|
||||
.saturating_add((2_379_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add((2_396_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(8 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(6 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(s as Weight)))
|
||||
}
|
||||
// Storage: Staking MaxValidatorsCount (r:1 w:0)
|
||||
// Storage: Staking MinValidatorBond (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:0)
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
// Storage: Staking Validators (r:1 w:1)
|
||||
// Storage: Staking CounterForValidators (r:1 w:1)
|
||||
fn validate() -> Weight {
|
||||
(32_393_000 as Weight)
|
||||
(36_726_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(6 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as Weight))
|
||||
}
|
||||
// Storage: Staking Ledger (r:1 w:0)
|
||||
// Storage: Staking Nominators (r:1 w:1)
|
||||
fn kick(k: u32, ) -> Weight {
|
||||
(36_986_000 as Weight)
|
||||
// Standard Error: 13_000
|
||||
.saturating_add((16_574_000 as Weight).saturating_mul(k as Weight))
|
||||
(19_497_000 as Weight)
|
||||
// Standard Error: 15_000
|
||||
.saturating_add((17_057_000 as Weight).saturating_mul(k as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(k as Weight)))
|
||||
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(k as Weight)))
|
||||
}
|
||||
// Storage: Staking Ledger (r:1 w:0)
|
||||
// Storage: Staking MinNominatorBond (r:1 w:0)
|
||||
// Storage: Staking CounterForNominators (r:1 w:1)
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Staking Nominators (r:1 w:1)
|
||||
// Storage: Staking Validators (r:2 w:0)
|
||||
// Storage: Staking MaxNominatorsCount (r:1 w:0)
|
||||
fn nominate(n: u32, ) -> Weight {
|
||||
(43_228_000 as Weight)
|
||||
// Standard Error: 21_000
|
||||
.saturating_add((5_119_000 as Weight).saturating_mul(n as Weight))
|
||||
(45_146_000 as Weight)
|
||||
// Standard Error: 13_000
|
||||
.saturating_add((5_527_000 as Weight).saturating_mul(n as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(7 as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(n as Weight)))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as Weight))
|
||||
}
|
||||
// Storage: Staking Validators (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:0)
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
fn chill() -> Weight {
|
||||
(17_800_000 as Weight)
|
||||
(18_986_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(3 as Weight))
|
||||
}
|
||||
// Storage: Staking Payee (r:0 w:1)
|
||||
// Storage: Staking Ledger (r:1 w:0)
|
||||
fn set_payee() -> Weight {
|
||||
(12_612_000 as Weight)
|
||||
(13_348_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Staking Bonded (r:1 w:1)
|
||||
// Storage: Staking Ledger (r:2 w:2)
|
||||
fn set_controller() -> Weight {
|
||||
(27_503_000 as Weight)
|
||||
(28_148_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(3 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as Weight))
|
||||
}
|
||||
// Storage: Staking ValidatorCount (r:0 w:1)
|
||||
fn set_validator_count() -> Weight {
|
||||
(2_119_000 as Weight)
|
||||
(2_909_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Staking ForceEra (r:0 w:1)
|
||||
fn force_no_eras() -> Weight {
|
||||
(2_320_000 as Weight)
|
||||
(3_163_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Staking ForceEra (r:0 w:1)
|
||||
fn force_new_era() -> Weight {
|
||||
(2_269_000 as Weight)
|
||||
(3_141_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Staking ForceEra (r:0 w:1)
|
||||
fn force_new_era_always() -> Weight {
|
||||
(2_334_000 as Weight)
|
||||
(3_220_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Staking Invulnerables (r:0 w:1)
|
||||
fn set_invulnerables(v: u32, ) -> Weight {
|
||||
(2_354_000 as Weight)
|
||||
(3_569_000 as Weight)
|
||||
// Standard Error: 0
|
||||
.saturating_add((5_000 as Weight).saturating_mul(v as Weight))
|
||||
.saturating_add((58_000 as Weight).saturating_mul(v as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
// Storage: System Account (r:1 w:1)
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
// Storage: Staking Payee (r:0 w:1)
|
||||
// Storage: Staking Bonded (r:1 w:1)
|
||||
// Storage: Staking Validators (r:1 w:0)
|
||||
// Storage: Staking SlashingSpans (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:0 w:1)
|
||||
// Storage: Staking SpanSlash (r:0 w:2)
|
||||
fn force_unstake(s: u32, ) -> Weight {
|
||||
(61_556_000 as Weight)
|
||||
(65_753_000 as Weight)
|
||||
// Standard Error: 1_000
|
||||
.saturating_add((2_377_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add((2_420_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(6 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(6 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(s as Weight)))
|
||||
}
|
||||
// Storage: Staking UnappliedSlashes (r:1 w:1)
|
||||
fn cancel_deferred_slash(s: u32, ) -> Weight {
|
||||
(3_367_105_000 as Weight)
|
||||
// Standard Error: 222_000
|
||||
.saturating_add((19_817_000 as Weight).saturating_mul(s as Weight))
|
||||
(3_056_514_000 as Weight)
|
||||
// Standard Error: 218_000
|
||||
.saturating_add((21_159_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Staking Bonded (r:2 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Staking ErasRewardPoints (r:1 w:0)
|
||||
// Storage: Staking ErasValidatorReward (r:1 w:0)
|
||||
// Storage: Staking HistoryDepth (r:1 w:0)
|
||||
// Storage: System Account (r:2 w:2)
|
||||
// Storage: Staking Payee (r:2 w:0)
|
||||
// Storage: Staking ErasStakersClipped (r:1 w:0)
|
||||
// Storage: Staking ErasValidatorPrefs (r:1 w:0)
|
||||
fn payout_stakers_dead_controller(n: u32, ) -> Weight {
|
||||
(47_229_000 as Weight)
|
||||
// Standard Error: 53_000
|
||||
.saturating_add((48_365_000 as Weight).saturating_mul(n as Weight))
|
||||
(121_794_000 as Weight)
|
||||
// Standard Error: 19_000
|
||||
.saturating_add((49_467_000 as Weight).saturating_mul(n as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(10 as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(n as Weight)))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(n as Weight)))
|
||||
}
|
||||
// Storage: Staking ErasValidatorPrefs (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:2 w:2)
|
||||
// Storage: Staking ErasValidatorReward (r:1 w:0)
|
||||
// Storage: Balances Locks (r:2 w:2)
|
||||
// Storage: Staking ErasRewardPoints (r:1 w:0)
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Staking HistoryDepth (r:1 w:0)
|
||||
// Storage: System Account (r:2 w:2)
|
||||
// Storage: Staking ErasStakersClipped (r:1 w:0)
|
||||
// Storage: Staking Bonded (r:2 w:0)
|
||||
// Storage: Staking Payee (r:2 w:0)
|
||||
fn payout_stakers_alive_staked(n: u32, ) -> Weight {
|
||||
(156_788_000 as Weight)
|
||||
// Standard Error: 20_000
|
||||
.saturating_add((61_280_000 as Weight).saturating_mul(n as Weight))
|
||||
(147_049_000 as Weight)
|
||||
// Standard Error: 30_000
|
||||
.saturating_add((64_428_000 as Weight).saturating_mul(n as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(11 as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads((5 as Weight).saturating_mul(n as Weight)))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes((3 as Weight).saturating_mul(n as Weight)))
|
||||
}
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn rebond(l: u32, ) -> Weight {
|
||||
(47_815_000 as Weight)
|
||||
(52_184_000 as Weight)
|
||||
// Standard Error: 1_000
|
||||
.saturating_add((65_000 as Weight).saturating_mul(l as Weight))
|
||||
.saturating_add((35_000 as Weight).saturating_mul(l as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(3 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(3 as Weight))
|
||||
}
|
||||
// Storage: Staking ErasStakersClipped (r:0 w:2)
|
||||
// Storage: Staking ErasValidatorReward (r:0 w:1)
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Staking ErasValidatorPrefs (r:0 w:2)
|
||||
// Storage: Staking ErasTotalStake (r:0 w:1)
|
||||
// Storage: Staking ErasStakers (r:0 w:2)
|
||||
// Storage: Staking ErasRewardPoints (r:0 w:1)
|
||||
// Storage: Staking HistoryDepth (r:1 w:1)
|
||||
// Storage: Staking ErasStartSessionIndex (r:0 w:1)
|
||||
fn set_history_depth(e: u32, ) -> Weight {
|
||||
(0 as Weight)
|
||||
// Standard Error: 74_000
|
||||
.saturating_add((34_945_000 as Weight).saturating_mul(e as Weight))
|
||||
// Standard Error: 57_000
|
||||
.saturating_add((30_689_000 as Weight).saturating_mul(e as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(2 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(4 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes((7 as Weight).saturating_mul(e as Weight)))
|
||||
}
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
// Storage: Staking SlashingSpans (r:1 w:1)
|
||||
// Storage: Staking Validators (r:1 w:1)
|
||||
// Storage: Staking SpanSlash (r:0 w:1)
|
||||
// Storage: Staking CounterForValidators (r:1 w:1)
|
||||
// Storage: System Account (r:1 w:1)
|
||||
// Storage: Staking Payee (r:0 w:1)
|
||||
// Storage: Staking Ledger (r:0 w:1)
|
||||
// Storage: Staking Bonded (r:1 w:1)
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
fn reap_stash(s: u32, ) -> Weight {
|
||||
(73_483_000 as Weight)
|
||||
// Standard Error: 0
|
||||
.saturating_add((2_384_000 as Weight).saturating_mul(s as Weight))
|
||||
(75_836_000 as Weight)
|
||||
// Standard Error: 2_000
|
||||
.saturating_add((2_423_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(7 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(8 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(s as Weight)))
|
||||
}
|
||||
// Storage: System BlockWeight (r:1 w:1)
|
||||
// Storage: Staking ErasStakers (r:0 w:1)
|
||||
// Storage: Staking ErasStakersClipped (r:0 w:1)
|
||||
// Storage: Staking Nominators (r:101 w:0)
|
||||
// Storage: Staking SlashingSpans (r:1 w:0)
|
||||
// Storage: Staking ErasStartSessionIndex (r:0 w:1)
|
||||
// Storage: Staking Ledger (r:101 w:0)
|
||||
// Storage: Staking Validators (r:2 w:0)
|
||||
// Storage: Staking Bonded (r:101 w:0)
|
||||
// Storage: Staking CounterForNominators (r:1 w:0)
|
||||
// Storage: Staking ValidatorCount (r:1 w:0)
|
||||
// Storage: Staking HistoryDepth (r:1 w:0)
|
||||
// Storage: Staking ErasValidatorPrefs (r:0 w:1)
|
||||
// Storage: Staking CounterForValidators (r:1 w:0)
|
||||
// Storage: Staking CurrentEra (r:1 w:1)
|
||||
// Storage: Staking MinimumValidatorCount (r:1 w:0)
|
||||
// Storage: Staking ErasTotalStake (r:0 w:1)
|
||||
fn new_era(v: u32, n: u32, ) -> Weight {
|
||||
(0 as Weight)
|
||||
// Standard Error: 846_000
|
||||
.saturating_add((305_234_000 as Weight).saturating_mul(v as Weight))
|
||||
// Standard Error: 42_000
|
||||
.saturating_add((48_280_000 as Weight).saturating_mul(n as Weight))
|
||||
// Standard Error: 1_492_000
|
||||
.saturating_add((299_860_000 as Weight).saturating_mul(v as Weight))
|
||||
// Standard Error: 99_000
|
||||
.saturating_add((47_937_000 as Weight).saturating_mul(n as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(10 as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(v as Weight)))
|
||||
.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(n as Weight)))
|
||||
.saturating_add(T::DbWeight::get().writes(4 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes((3 as Weight).saturating_mul(v as Weight)))
|
||||
}
|
||||
// Storage: Staking Validators (r:501 w:0)
|
||||
// Storage: Staking Bonded (r:1500 w:0)
|
||||
// Storage: Staking Nominators (r:1001 w:0)
|
||||
// Storage: Staking Ledger (r:1500 w:0)
|
||||
// Storage: Staking SlashingSpans (r:21 w:0)
|
||||
fn get_npos_voters(v: u32, n: u32, s: u32, ) -> Weight {
|
||||
(0 as Weight)
|
||||
// Standard Error: 99_000
|
||||
.saturating_add((25_735_000 as Weight).saturating_mul(v as Weight))
|
||||
// Standard Error: 99_000
|
||||
.saturating_add((28_122_000 as Weight).saturating_mul(n as Weight))
|
||||
// Standard Error: 3_388_000
|
||||
.saturating_add((21_500_000 as Weight).saturating_mul(s as Weight))
|
||||
// Standard Error: 101_000
|
||||
.saturating_add((27_304_000 as Weight).saturating_mul(v as Weight))
|
||||
// Standard Error: 101_000
|
||||
.saturating_add((29_893_000 as Weight).saturating_mul(n as Weight))
|
||||
// Standard Error: 3_441_000
|
||||
.saturating_add((91_111_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(3 as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(v as Weight)))
|
||||
.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(n as Weight)))
|
||||
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(s as Weight)))
|
||||
}
|
||||
// Storage: Staking Validators (r:501 w:0)
|
||||
fn get_npos_targets(v: u32, ) -> Weight {
|
||||
(0 as Weight)
|
||||
// Standard Error: 30_000
|
||||
.saturating_add((11_065_000 as Weight).saturating_mul(v as Weight))
|
||||
// Standard Error: 32_000
|
||||
.saturating_add((11_692_000 as Weight).saturating_mul(v as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(v as Weight)))
|
||||
}
|
||||
// Storage: Staking MaxNominatorsCount (r:0 w:1)
|
||||
// Storage: Staking MaxValidatorsCount (r:0 w:1)
|
||||
// Storage: Staking MinValidatorBond (r:0 w:1)
|
||||
// Storage: Staking ChillThreshold (r:0 w:1)
|
||||
// Storage: Staking MinNominatorBond (r:0 w:1)
|
||||
fn set_staking_limits() -> Weight {
|
||||
(5_028_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().writes(4 as Weight))
|
||||
(7_325_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().writes(5 as Weight))
|
||||
}
|
||||
// Storage: Staking MinValidatorBond (r:1 w:0)
|
||||
// Storage: Staking ChillThreshold (r:1 w:0)
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
// Storage: Staking Validators (r:1 w:1)
|
||||
// Storage: Staking CounterForValidators (r:1 w:1)
|
||||
// Storage: Staking MaxValidatorsCount (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:0)
|
||||
fn chill_other() -> Weight {
|
||||
(35_758_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(5 as Weight))
|
||||
(62_683_000 as Weight)
|
||||
.saturating_add(T::DbWeight::get().reads(7 as Weight))
|
||||
.saturating_add(T::DbWeight::get().writes(2 as Weight))
|
||||
}
|
||||
}
|
||||
|
||||
// For backwards compatibility and tests
|
||||
impl WeightInfo for () {
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
// Storage: Staking Bonded (r:1 w:1)
|
||||
// Storage: Staking HistoryDepth (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: Staking Payee (r:0 w:1)
|
||||
fn bond() -> Weight {
|
||||
(72_617_000 as Weight)
|
||||
(77_492_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(4 as Weight))
|
||||
}
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: Staking Bonded (r:1 w:0)
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
fn bond_extra() -> Weight {
|
||||
(55_590_000 as Weight)
|
||||
(59_476_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
|
||||
}
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
// Storage: System Account (r:1 w:1)
|
||||
// Storage: Staking Validators (r:1 w:0)
|
||||
fn unbond() -> Weight {
|
||||
(59_730_000 as Weight)
|
||||
(63_655_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(6 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as Weight))
|
||||
}
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn withdraw_unbonded_update(s: u32, ) -> Weight {
|
||||
(52_279_000 as Weight)
|
||||
(54_534_000 as Weight)
|
||||
// Standard Error: 0
|
||||
.saturating_add((68_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add((24_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(4 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as Weight))
|
||||
}
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: Staking Bonded (r:1 w:1)
|
||||
// Storage: Staking Validators (r:1 w:0)
|
||||
// Storage: Staking Payee (r:0 w:1)
|
||||
// Storage: Staking SlashingSpans (r:1 w:0)
|
||||
// Storage: System Account (r:1 w:1)
|
||||
// Storage: Staking SpanSlash (r:0 w:2)
|
||||
fn withdraw_unbonded_kill(s: u32, ) -> Weight {
|
||||
(86_629_000 as Weight)
|
||||
(89_850_000 as Weight)
|
||||
// Standard Error: 1_000
|
||||
.saturating_add((2_379_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add((2_396_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(8 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(s as Weight)))
|
||||
}
|
||||
// Storage: Staking MaxValidatorsCount (r:1 w:0)
|
||||
// Storage: Staking MinValidatorBond (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:0)
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
// Storage: Staking Validators (r:1 w:1)
|
||||
// Storage: Staking CounterForValidators (r:1 w:1)
|
||||
fn validate() -> Weight {
|
||||
(32_393_000 as Weight)
|
||||
(36_726_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(6 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
|
||||
}
|
||||
// Storage: Staking Ledger (r:1 w:0)
|
||||
// Storage: Staking Nominators (r:1 w:1)
|
||||
fn kick(k: u32, ) -> Weight {
|
||||
(36_986_000 as Weight)
|
||||
// Standard Error: 13_000
|
||||
.saturating_add((16_574_000 as Weight).saturating_mul(k as Weight))
|
||||
(19_497_000 as Weight)
|
||||
// Standard Error: 15_000
|
||||
.saturating_add((17_057_000 as Weight).saturating_mul(k as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(k as Weight)))
|
||||
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(k as Weight)))
|
||||
}
|
||||
// Storage: Staking Ledger (r:1 w:0)
|
||||
// Storage: Staking MinNominatorBond (r:1 w:0)
|
||||
// Storage: Staking CounterForNominators (r:1 w:1)
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Staking Nominators (r:1 w:1)
|
||||
// Storage: Staking Validators (r:2 w:0)
|
||||
// Storage: Staking MaxNominatorsCount (r:1 w:0)
|
||||
fn nominate(n: u32, ) -> Weight {
|
||||
(43_228_000 as Weight)
|
||||
// Standard Error: 21_000
|
||||
.saturating_add((5_119_000 as Weight).saturating_mul(n as Weight))
|
||||
(45_146_000 as Weight)
|
||||
// Standard Error: 13_000
|
||||
.saturating_add((5_527_000 as Weight).saturating_mul(n as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(7 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(n as Weight)))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
|
||||
}
|
||||
// Storage: Staking Validators (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:0)
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
fn chill() -> Weight {
|
||||
(17_800_000 as Weight)
|
||||
(18_986_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as Weight))
|
||||
}
|
||||
// Storage: Staking Payee (r:0 w:1)
|
||||
// Storage: Staking Ledger (r:1 w:0)
|
||||
fn set_payee() -> Weight {
|
||||
(12_612_000 as Weight)
|
||||
(13_348_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Staking Bonded (r:1 w:1)
|
||||
// Storage: Staking Ledger (r:2 w:2)
|
||||
fn set_controller() -> Weight {
|
||||
(27_503_000 as Weight)
|
||||
(28_148_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as Weight))
|
||||
}
|
||||
// Storage: Staking ValidatorCount (r:0 w:1)
|
||||
fn set_validator_count() -> Weight {
|
||||
(2_119_000 as Weight)
|
||||
(2_909_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Staking ForceEra (r:0 w:1)
|
||||
fn force_no_eras() -> Weight {
|
||||
(2_320_000 as Weight)
|
||||
(3_163_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Staking ForceEra (r:0 w:1)
|
||||
fn force_new_era() -> Weight {
|
||||
(2_269_000 as Weight)
|
||||
(3_141_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Staking ForceEra (r:0 w:1)
|
||||
fn force_new_era_always() -> Weight {
|
||||
(2_334_000 as Weight)
|
||||
(3_220_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Staking Invulnerables (r:0 w:1)
|
||||
fn set_invulnerables(v: u32, ) -> Weight {
|
||||
(2_354_000 as Weight)
|
||||
(3_569_000 as Weight)
|
||||
// Standard Error: 0
|
||||
.saturating_add((5_000 as Weight).saturating_mul(v as Weight))
|
||||
.saturating_add((58_000 as Weight).saturating_mul(v as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
// Storage: System Account (r:1 w:1)
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
// Storage: Staking Payee (r:0 w:1)
|
||||
// Storage: Staking Bonded (r:1 w:1)
|
||||
// Storage: Staking Validators (r:1 w:0)
|
||||
// Storage: Staking SlashingSpans (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:0 w:1)
|
||||
// Storage: Staking SpanSlash (r:0 w:2)
|
||||
fn force_unstake(s: u32, ) -> Weight {
|
||||
(61_556_000 as Weight)
|
||||
(65_753_000 as Weight)
|
||||
// Standard Error: 1_000
|
||||
.saturating_add((2_377_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add((2_420_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(6 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(6 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(s as Weight)))
|
||||
}
|
||||
// Storage: Staking UnappliedSlashes (r:1 w:1)
|
||||
fn cancel_deferred_slash(s: u32, ) -> Weight {
|
||||
(3_367_105_000 as Weight)
|
||||
// Standard Error: 222_000
|
||||
.saturating_add((19_817_000 as Weight).saturating_mul(s as Weight))
|
||||
(3_056_514_000 as Weight)
|
||||
// Standard Error: 218_000
|
||||
.saturating_add((21_159_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
|
||||
}
|
||||
// Storage: Staking Bonded (r:2 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Staking ErasRewardPoints (r:1 w:0)
|
||||
// Storage: Staking ErasValidatorReward (r:1 w:0)
|
||||
// Storage: Staking HistoryDepth (r:1 w:0)
|
||||
// Storage: System Account (r:2 w:2)
|
||||
// Storage: Staking Payee (r:2 w:0)
|
||||
// Storage: Staking ErasStakersClipped (r:1 w:0)
|
||||
// Storage: Staking ErasValidatorPrefs (r:1 w:0)
|
||||
fn payout_stakers_dead_controller(n: u32, ) -> Weight {
|
||||
(47_229_000 as Weight)
|
||||
// Standard Error: 53_000
|
||||
.saturating_add((48_365_000 as Weight).saturating_mul(n as Weight))
|
||||
(121_794_000 as Weight)
|
||||
// Standard Error: 19_000
|
||||
.saturating_add((49_467_000 as Weight).saturating_mul(n as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(10 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads((3 as Weight).saturating_mul(n as Weight)))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(n as Weight)))
|
||||
}
|
||||
// Storage: Staking ErasValidatorPrefs (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:2 w:2)
|
||||
// Storage: Staking ErasValidatorReward (r:1 w:0)
|
||||
// Storage: Balances Locks (r:2 w:2)
|
||||
// Storage: Staking ErasRewardPoints (r:1 w:0)
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Staking HistoryDepth (r:1 w:0)
|
||||
// Storage: System Account (r:2 w:2)
|
||||
// Storage: Staking ErasStakersClipped (r:1 w:0)
|
||||
// Storage: Staking Bonded (r:2 w:0)
|
||||
// Storage: Staking Payee (r:2 w:0)
|
||||
fn payout_stakers_alive_staked(n: u32, ) -> Weight {
|
||||
(156_788_000 as Weight)
|
||||
// Standard Error: 20_000
|
||||
.saturating_add((61_280_000 as Weight).saturating_mul(n as Weight))
|
||||
(147_049_000 as Weight)
|
||||
// Standard Error: 30_000
|
||||
.saturating_add((64_428_000 as Weight).saturating_mul(n as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(11 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads((5 as Weight).saturating_mul(n as Weight)))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes((3 as Weight).saturating_mul(n as Weight)))
|
||||
}
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
// Storage: Staking Ledger (r:1 w:1)
|
||||
// Storage: System Account (r:1 w:1)
|
||||
fn rebond(l: u32, ) -> Weight {
|
||||
(47_815_000 as Weight)
|
||||
(52_184_000 as Weight)
|
||||
// Standard Error: 1_000
|
||||
.saturating_add((65_000 as Weight).saturating_mul(l as Weight))
|
||||
.saturating_add((35_000 as Weight).saturating_mul(l as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(3 as Weight))
|
||||
}
|
||||
// Storage: Staking ErasStakersClipped (r:0 w:2)
|
||||
// Storage: Staking ErasValidatorReward (r:0 w:1)
|
||||
// Storage: Staking CurrentEra (r:1 w:0)
|
||||
// Storage: Staking ErasValidatorPrefs (r:0 w:2)
|
||||
// Storage: Staking ErasTotalStake (r:0 w:1)
|
||||
// Storage: Staking ErasStakers (r:0 w:2)
|
||||
// Storage: Staking ErasRewardPoints (r:0 w:1)
|
||||
// Storage: Staking HistoryDepth (r:1 w:1)
|
||||
// Storage: Staking ErasStartSessionIndex (r:0 w:1)
|
||||
fn set_history_depth(e: u32, ) -> Weight {
|
||||
(0 as Weight)
|
||||
// Standard Error: 74_000
|
||||
.saturating_add((34_945_000 as Weight).saturating_mul(e as Weight))
|
||||
// Standard Error: 57_000
|
||||
.saturating_add((30_689_000 as Weight).saturating_mul(e as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(4 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes((7 as Weight).saturating_mul(e as Weight)))
|
||||
}
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
// Storage: Staking SlashingSpans (r:1 w:1)
|
||||
// Storage: Staking Validators (r:1 w:1)
|
||||
// Storage: Staking SpanSlash (r:0 w:1)
|
||||
// Storage: Staking CounterForValidators (r:1 w:1)
|
||||
// Storage: System Account (r:1 w:1)
|
||||
// Storage: Staking Payee (r:0 w:1)
|
||||
// Storage: Staking Ledger (r:0 w:1)
|
||||
// Storage: Staking Bonded (r:1 w:1)
|
||||
// Storage: Balances Locks (r:1 w:1)
|
||||
fn reap_stash(s: u32, ) -> Weight {
|
||||
(73_483_000 as Weight)
|
||||
// Standard Error: 0
|
||||
.saturating_add((2_384_000 as Weight).saturating_mul(s as Weight))
|
||||
(75_836_000 as Weight)
|
||||
// Standard Error: 2_000
|
||||
.saturating_add((2_423_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(7 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(8 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(s as Weight)))
|
||||
}
|
||||
// Storage: System BlockWeight (r:1 w:1)
|
||||
// Storage: Staking ErasStakers (r:0 w:1)
|
||||
// Storage: Staking ErasStakersClipped (r:0 w:1)
|
||||
// Storage: Staking Nominators (r:101 w:0)
|
||||
// Storage: Staking SlashingSpans (r:1 w:0)
|
||||
// Storage: Staking ErasStartSessionIndex (r:0 w:1)
|
||||
// Storage: Staking Ledger (r:101 w:0)
|
||||
// Storage: Staking Validators (r:2 w:0)
|
||||
// Storage: Staking Bonded (r:101 w:0)
|
||||
// Storage: Staking CounterForNominators (r:1 w:0)
|
||||
// Storage: Staking ValidatorCount (r:1 w:0)
|
||||
// Storage: Staking HistoryDepth (r:1 w:0)
|
||||
// Storage: Staking ErasValidatorPrefs (r:0 w:1)
|
||||
// Storage: Staking CounterForValidators (r:1 w:0)
|
||||
// Storage: Staking CurrentEra (r:1 w:1)
|
||||
// Storage: Staking MinimumValidatorCount (r:1 w:0)
|
||||
// Storage: Staking ErasTotalStake (r:0 w:1)
|
||||
fn new_era(v: u32, n: u32, ) -> Weight {
|
||||
(0 as Weight)
|
||||
// Standard Error: 846_000
|
||||
.saturating_add((305_234_000 as Weight).saturating_mul(v as Weight))
|
||||
// Standard Error: 42_000
|
||||
.saturating_add((48_280_000 as Weight).saturating_mul(n as Weight))
|
||||
// Standard Error: 1_492_000
|
||||
.saturating_add((299_860_000 as Weight).saturating_mul(v as Weight))
|
||||
// Standard Error: 99_000
|
||||
.saturating_add((47_937_000 as Weight).saturating_mul(n as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(10 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads((3 as Weight).saturating_mul(v as Weight)))
|
||||
.saturating_add(RocksDbWeight::get().reads((3 as Weight).saturating_mul(n as Weight)))
|
||||
.saturating_add(RocksDbWeight::get().writes(4 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes((3 as Weight).saturating_mul(v as Weight)))
|
||||
}
|
||||
// Storage: Staking Validators (r:501 w:0)
|
||||
// Storage: Staking Bonded (r:1500 w:0)
|
||||
// Storage: Staking Nominators (r:1001 w:0)
|
||||
// Storage: Staking Ledger (r:1500 w:0)
|
||||
// Storage: Staking SlashingSpans (r:21 w:0)
|
||||
fn get_npos_voters(v: u32, n: u32, s: u32, ) -> Weight {
|
||||
(0 as Weight)
|
||||
// Standard Error: 99_000
|
||||
.saturating_add((25_735_000 as Weight).saturating_mul(v as Weight))
|
||||
// Standard Error: 99_000
|
||||
.saturating_add((28_122_000 as Weight).saturating_mul(n as Weight))
|
||||
// Standard Error: 3_388_000
|
||||
.saturating_add((21_500_000 as Weight).saturating_mul(s as Weight))
|
||||
// Standard Error: 101_000
|
||||
.saturating_add((27_304_000 as Weight).saturating_mul(v as Weight))
|
||||
// Standard Error: 101_000
|
||||
.saturating_add((29_893_000 as Weight).saturating_mul(n as Weight))
|
||||
// Standard Error: 3_441_000
|
||||
.saturating_add((91_111_000 as Weight).saturating_mul(s as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(3 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads((3 as Weight).saturating_mul(v as Weight)))
|
||||
.saturating_add(RocksDbWeight::get().reads((3 as Weight).saturating_mul(n as Weight)))
|
||||
.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(s as Weight)))
|
||||
}
|
||||
// Storage: Staking Validators (r:501 w:0)
|
||||
fn get_npos_targets(v: u32, ) -> Weight {
|
||||
(0 as Weight)
|
||||
// Standard Error: 30_000
|
||||
.saturating_add((11_065_000 as Weight).saturating_mul(v as Weight))
|
||||
// Standard Error: 32_000
|
||||
.saturating_add((11_692_000 as Weight).saturating_mul(v as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(v as Weight)))
|
||||
}
|
||||
// Storage: Staking MaxNominatorsCount (r:0 w:1)
|
||||
// Storage: Staking MaxValidatorsCount (r:0 w:1)
|
||||
// Storage: Staking MinValidatorBond (r:0 w:1)
|
||||
// Storage: Staking ChillThreshold (r:0 w:1)
|
||||
// Storage: Staking MinNominatorBond (r:0 w:1)
|
||||
fn set_staking_limits() -> Weight {
|
||||
(5_028_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().writes(4 as Weight))
|
||||
(7_325_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().writes(5 as Weight))
|
||||
}
|
||||
// Storage: Staking MinValidatorBond (r:1 w:0)
|
||||
// Storage: Staking ChillThreshold (r:1 w:0)
|
||||
// Storage: Staking Nominators (r:1 w:0)
|
||||
// Storage: Staking Validators (r:1 w:1)
|
||||
// Storage: Staking CounterForValidators (r:1 w:1)
|
||||
// Storage: Staking MaxValidatorsCount (r:1 w:0)
|
||||
// Storage: Staking Ledger (r:1 w:0)
|
||||
fn chill_other() -> Weight {
|
||||
(35_758_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
|
||||
(62_683_000 as Weight)
|
||||
.saturating_add(RocksDbWeight::get().reads(7 as Weight))
|
||||
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user