Struct frame_benchmarking_cli::PalletCmd
source · pub struct PalletCmd {Show 34 fields
pub pallet: Option<String>,
pub extrinsic: Option<String>,
pub all: bool,
pub steps: u32,
pub lowest_range_values: Vec<u32>,
pub highest_range_values: Vec<u32>,
pub repeat: u32,
pub external_repeat: u32,
pub json_output: bool,
pub json_file: Option<PathBuf>,
pub no_median_slopes: bool,
pub no_min_squares: bool,
pub output: Option<PathBuf>,
pub header: Option<PathBuf>,
pub template: Option<PathBuf>,
pub hostinfo_params: HostInfoParams,
pub output_analysis: Option<String>,
pub output_pov_analysis: Option<String>,
pub default_pov_mode: PovEstimationMode,
pub heap_pages: Option<u64>,
pub no_verify: bool,
pub extra: bool,
pub shared_params: SharedParams,
pub wasm_method: WasmExecutionMethod,
pub wasmtime_instantiation_strategy: WasmtimeInstantiationStrategy,
pub execution: Option<String>,
pub database_cache_size: u32,
pub list: Option<ListOutput>,
pub no_csv_header: bool,
pub no_storage_info: bool,
pub worst_case_map_values: u32,
pub additional_trie_layers: u8,
pub json_input: Option<PathBuf>,
pub unsafe_overwrite_results: bool,
}Expand description
Benchmark the extrinsic weight of FRAME Pallets.
Fields§
§pallet: Option<String>Select a FRAME Pallet to benchmark, or * for all (in which case extrinsic must be *).
extrinsic: Option<String>Select an extrinsic inside the pallet to benchmark, or * for all.
all: boolRun benchmarks for all pallets and extrinsics.
This is equivalent to running --pallet * --extrinsic *.
steps: u32Select how many samples we should take across the variable components.
lowest_range_values: Vec<u32>Indicates lowest values for each of the component ranges.
highest_range_values: Vec<u32>Indicates highest values for each of the component ranges.
repeat: u32Select how many repetitions of this benchmark should run from within the wasm.
external_repeat: u32Select how many repetitions of this benchmark should run from the client.
NOTE: Using this alone may give slower results, but will afford you maximum Wasm memory.
json_output: boolPrint the raw results in JSON format.
json_file: Option<PathBuf>Write the raw results in JSON format into the given file.
no_median_slopes: boolDon’t print the median-slopes linear regression analysis.
no_min_squares: boolDon’t print the min-squares linear regression analysis.
output: Option<PathBuf>Output the benchmarks to a Rust file at the given path.
header: Option<PathBuf>Add a header file to your outputted benchmarks.
template: Option<PathBuf>Path to Handlebars template file used for outputting benchmark results. (Optional)
hostinfo_params: HostInfoParams§output_analysis: Option<String>Which analysis function to use when outputting benchmarks:
- min-squares (default)
- median-slopes
- max (max of min squares and median slopes for each value)
output_pov_analysis: Option<String>Which analysis function to use when analyzing measured proof sizes.
default_pov_mode: PovEstimationModeThe PoV estimation mode of a benchmark if no pov_mode attribute is present.
heap_pages: Option<u64>Set the heap pages while running benchmarks. If not set, the default value from the client is used.
no_verify: boolDisable verification logic when running benchmarks.
extra: boolDisplay and run extra benchmarks that would otherwise not be needed for weight construction.
wasm_method: WasmExecutionMethodMethod for executing Wasm runtime code.
wasmtime_instantiation_strategy: WasmtimeInstantiationStrategyThe WASM instantiation method to use.
Only has an effect when wasm-execution is set to compiled.
execution: Option<String>DEPRECATED: This argument has no effect.
database_cache_size: u32Limit the memory the database cache can use.
list: Option<ListOutput>List and print available benchmarks in a csv-friendly format.
NOTE: num_args and require_equals are required to allow --list
no_csv_header: boolDon’t include csv header when listing benchmarks.
no_storage_info: boolIf enabled, the storage info is not displayed in the output next to the analysis.
This is independent of the storage info appearing in the output file. Use a Handlebar template for that purpose.
worst_case_map_values: u32The assumed default maximum size of any StorageMap.
When the maximum size of a map is not defined by the runtime developer, this value is used as a worst case scenario. It will affect the calculated worst case PoV size for accessing a value in a map, since the PoV will need to include the trie nodes down to the underlying value.
additional_trie_layers: u8Adjust the PoV estimation by adding additional trie layers to it.
This should be set to log16(n) where n is the number of top-level storage items in the
runtime, eg. StorageMaps and StorageValues. A value of 2 to 3 is usually sufficient.
Each layer will result in an additional 495 bytes PoV per distinct top-level access.
Therefore multiple StorageMap accesses only suffer from this increase once. The exact
number of storage items depends on the runtime and the deployed pallets.
json_input: Option<PathBuf>A path to a .json file with existing benchmark results generated with --json or
--json-file. When specified the benchmarks are not actually executed, and the data for
the analysis is read from this file.
unsafe_overwrite_results: boolAllow overwriting a single file with multiple results.
This exists only to restore legacy behaviour. It should never actually be needed.
Implementations§
source§impl PalletCmd
impl PalletCmd
sourcepub fn run<Hasher, ExtraHostFunctions>(
&self,
config: Configuration
) -> Result<()>where
Hasher: Hash,
ExtraHostFunctions: HostFunctions,
pub fn run<Hasher, ExtraHostFunctions>(
&self,
config: Configuration
) -> Result<()>where
Hasher: Hash,
ExtraHostFunctions: HostFunctions,
Runs the command and benchmarks a pallet.
Trait Implementations§
source§impl CliConfiguration for PalletCmd
impl CliConfiguration for PalletCmd
source§fn import_params(&self) -> Option<&ImportParams>
fn import_params(&self) -> Option<&ImportParams>
source§fn pruning_params(&self) -> Option<&PruningParams>
fn pruning_params(&self) -> Option<&PruningParams>
source§fn keystore_params(&self) -> Option<&KeystoreParams>
fn keystore_params(&self) -> Option<&KeystoreParams>
source§fn network_params(&self) -> Option<&NetworkParams>
fn network_params(&self) -> Option<&NetworkParams>
source§fn offchain_worker_params(&self) -> Option<&OffchainWorkerParams>
fn offchain_worker_params(&self) -> Option<&OffchainWorkerParams>
OffchainWorkerParams for this object.source§fn node_key_params(&self) -> Option<&NodeKeyParams>
fn node_key_params(&self) -> Option<&NodeKeyParams>
source§fn database_params(&self) -> Option<&DatabaseParams>
fn database_params(&self) -> Option<&DatabaseParams>
source§fn base_path(&self) -> Result<Option<BasePath>, Error>
fn base_path(&self) -> Result<Option<BasePath>, Error>
source§fn is_dev(&self) -> Result<bool, Error>
fn is_dev(&self) -> Result<bool, Error>
true if the node is for development or not Read moresource§fn transaction_pool(&self, _is_dev: bool) -> Result<Options, Error>
fn transaction_pool(&self, _is_dev: bool) -> Result<Options, Error>
source§fn network_config(
&self,
chain_spec: &Box<dyn ChainSpec>,
is_dev: bool,
is_validator: bool,
net_config_dir: PathBuf,
client_id: &str,
node_name: &str,
node_key: NodeKeyConfig,
default_listen_port: u16
) -> Result<NetworkConfiguration, Error>
fn network_config( &self, chain_spec: &Box<dyn ChainSpec>, is_dev: bool, is_validator: bool, net_config_dir: PathBuf, client_id: &str, node_name: &str, node_key: NodeKeyConfig, default_listen_port: u16 ) -> Result<NetworkConfiguration, Error>
source§fn keystore_config(&self, config_dir: &PathBuf) -> Result<KeystoreConfig, Error>
fn keystore_config(&self, config_dir: &PathBuf) -> Result<KeystoreConfig, Error>
source§fn database_cache_size(&self) -> Result<Option<usize>, Error>
fn database_cache_size(&self) -> Result<Option<usize>, Error>
source§fn database(&self) -> Result<Option<Database>, Error>
fn database(&self) -> Result<Option<Database>, Error>
source§fn database_config(
&self,
base_path: &PathBuf,
cache_size: usize,
database: Database
) -> Result<DatabaseSource, Error>
fn database_config( &self, base_path: &PathBuf, cache_size: usize, database: Database ) -> Result<DatabaseSource, Error>
source§fn trie_cache_maximum_size(&self) -> Result<Option<usize>, Error>
fn trie_cache_maximum_size(&self) -> Result<Option<usize>, Error>
source§fn state_pruning(&self) -> Result<Option<PruningMode>, Error>
fn state_pruning(&self) -> Result<Option<PruningMode>, Error>
source§fn blocks_pruning(&self) -> Result<BlocksPruning, Error>
fn blocks_pruning(&self) -> Result<BlocksPruning, Error>
source§fn wasm_method(&self) -> Result<WasmExecutionMethod, Error>
fn wasm_method(&self) -> Result<WasmExecutionMethod, Error>
source§fn wasm_runtime_overrides(&self) -> Option<PathBuf>
fn wasm_runtime_overrides(&self) -> Option<PathBuf>
source§fn rpc_addr(
&self,
_default_listen_port: u16
) -> Result<Option<SocketAddr>, Error>
fn rpc_addr( &self, _default_listen_port: u16 ) -> Result<Option<SocketAddr>, Error>
source§fn rpc_methods(&self) -> Result<RpcMethods, Error>
fn rpc_methods(&self) -> Result<RpcMethods, Error>
source§fn rpc_max_connections(&self) -> Result<u32, Error>
fn rpc_max_connections(&self) -> Result<u32, Error>
source§fn rpc_cors(&self, _is_dev: bool) -> Result<Option<Vec<String>>, Error>
fn rpc_cors(&self, _is_dev: bool) -> Result<Option<Vec<String>>, Error>
None if disabled) Read moresource§fn rpc_max_subscriptions_per_connection(&self) -> Result<u32, Error>
fn rpc_max_subscriptions_per_connection(&self) -> Result<u32, Error>
source§fn rpc_buffer_capacity_per_connection(&self) -> Result<u32, Error>
fn rpc_buffer_capacity_per_connection(&self) -> Result<u32, Error>
source§fn rpc_batch_config(&self) -> Result<BatchRequestConfig, Error>
fn rpc_batch_config(&self) -> Result<BatchRequestConfig, Error>
source§fn prometheus_config(
&self,
_default_listen_port: u16,
_chain_spec: &Box<dyn ChainSpec>
) -> Result<Option<PrometheusConfig>, Error>
fn prometheus_config( &self, _default_listen_port: u16, _chain_spec: &Box<dyn ChainSpec> ) -> Result<Option<PrometheusConfig>, Error>
None if disabled) Read moresource§fn telemetry_endpoints(
&self,
chain_spec: &Box<dyn ChainSpec>
) -> Result<Option<TelemetryEndpoints>, Error>
fn telemetry_endpoints( &self, chain_spec: &Box<dyn ChainSpec> ) -> Result<Option<TelemetryEndpoints>, Error>
source§fn default_heap_pages(&self) -> Result<Option<u64>, Error>
fn default_heap_pages(&self) -> Result<Option<u64>, Error>
source§fn offchain_worker(&self, role: &Role) -> Result<OffchainWorkerConfig, Error>
fn offchain_worker(&self, role: &Role) -> Result<OffchainWorkerConfig, Error>
Ok(_) Read moreOk(true) if authoring should be forced Read moresource§fn disable_grandpa(&self) -> Result<bool, Error>
fn disable_grandpa(&self) -> Result<bool, Error>
Ok(true) if grandpa should be disabled Read moresource§fn dev_key_seed(&self, _is_dev: bool) -> Result<Option<String>, Error>
fn dev_key_seed(&self, _is_dev: bool) -> Result<Option<String>, Error>
source§fn tracing_targets(&self) -> Result<Option<String>, Error>
fn tracing_targets(&self) -> Result<Option<String>, Error>
source§fn tracing_receiver(&self) -> Result<TracingReceiver, Error>
fn tracing_receiver(&self) -> Result<TracingReceiver, Error>
source§fn node_key(&self, net_config_dir: &PathBuf) -> Result<NodeKeyConfig, Error>
fn node_key(&self, net_config_dir: &PathBuf) -> Result<NodeKeyConfig, Error>
source§fn max_runtime_instances(&self) -> Result<Option<usize>, Error>
fn max_runtime_instances(&self) -> Result<Option<usize>, Error>
source§fn runtime_cache_size(&self) -> Result<u8, Error>
fn runtime_cache_size(&self) -> Result<u8, Error>
source§fn announce_block(&self) -> Result<bool, Error>
fn announce_block(&self) -> Result<bool, Error>
source§fn create_configuration<C>(
&self,
cli: &C,
tokio_handle: Handle
) -> Result<Configuration, Error>where
C: SubstrateCli,
fn create_configuration<C>(
&self,
cli: &C,
tokio_handle: Handle
) -> Result<Configuration, Error>where
C: SubstrateCli,
source§fn detailed_log_output(&self) -> Result<bool, Error>
fn detailed_log_output(&self) -> Result<bool, Error>
source§impl CommandFactory for PalletCmd
impl CommandFactory for PalletCmd
source§impl FromArgMatches for PalletCmd
impl FromArgMatches for PalletCmd
source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches ) -> Result<Self, Error>
source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches ) -> Result<(), Error>
ArgMatches to self.source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches ) -> Result<(), Error>
ArgMatches to self.source§impl Parser for PalletCmd
impl Parser for PalletCmd
source§fn parse_from<I, T>(itr: I) -> Self
fn parse_from<I, T>(itr: I) -> Self
source§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error>
source§fn update_from<I, T>(&mut self, itr: I)
fn update_from<I, T>(&mut self, itr: I)
Auto Trait Implementations§
impl Freeze for PalletCmd
impl RefUnwindSafe for PalletCmd
impl Send for PalletCmd
impl Sync for PalletCmd
impl Unpin for PalletCmd
impl UnwindSafe for PalletCmd
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T. Read moresource§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.source§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
source§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from.source§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T.