Struct frame_benchmarking_cli::MachineCmd
source · pub struct MachineCmd {
pub shared_params: SharedParams,
pub allow_fail: bool,
pub tolerance: f64,
pub verify_duration: f32,
pub hash_duration: f32,
pub memory_duration: f32,
pub disk_duration: f32,
}
Expand description
Command to benchmark the hardware.
Runs multiple benchmarks and prints their output to console. Can be used to gauge if the hardware is fast enough to keep up with a chain’s requirements. This command must be integrated by the client since the client can set compiler flags which influence the results.
You can use the --base-path
flag to set a location for the disk benchmarks.
Fields§
§allow_fail: bool
Do not return an error if any check fails.
Should only be used for debugging.
tolerance: f64
Set a fault tolerance for passing a requirement.
10% means that the test would pass even when only 90% score was archived. Can be used to mitigate outliers of the benchmarks.
verify_duration: f32
Time limit for the verification benchmark.
hash_duration: f32
Time limit for the hash function benchmark.
memory_duration: f32
Time limit for the memory benchmark.
disk_duration: f32
Time limit for each disk benchmark.
Implementations§
source§impl MachineCmd
impl MachineCmd
sourcepub fn run(&self, cfg: &Configuration, requirements: Requirements) -> Result<()>
pub fn run(&self, cfg: &Configuration, requirements: Requirements) -> Result<()>
Execute the benchmark and print the results.
Trait Implementations§
source§impl Args for MachineCmd
impl Args for MachineCmd
source§fn group_id() -> Option<Id>
fn group_id() -> Option<Id>
ArgGroup::id
][crate::ArgGroup::id] for this set of argumentssource§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
source§impl CliConfiguration<()> for MachineCmd
impl CliConfiguration<()> for MachineCmd
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 + 'static, Global>,
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 + 'static, Global>, 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 chain_id(&self, is_dev: bool) -> Result<String, Error>
fn chain_id(&self, is_dev: bool) -> Result<String, 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, Global>>, Error>
fn rpc_cors(&self, _is_dev: bool) -> Result<Option<Vec<String, Global>>, 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 prometheus_config(
&self,
_default_listen_port: u16,
_chain_spec: &Box<dyn ChainSpec + 'static, Global>
) -> Result<Option<PrometheusConfig>, Error>
fn prometheus_config( &self, _default_listen_port: u16, _chain_spec: &Box<dyn ChainSpec + 'static, Global> ) -> Result<Option<PrometheusConfig>, Error>
None
if disabled) Read moresource§fn telemetry_endpoints(
&self,
chain_spec: &Box<dyn ChainSpec + 'static, Global>
) -> Result<Option<TelemetryEndpoints>, Error>
fn telemetry_endpoints( &self, chain_spec: &Box<dyn ChainSpec + 'static, Global> ) -> 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§fn init<F>(
&self,
support_url: &String,
impl_version: &String,
logger_hook: F,
config: &Configuration
) -> Result<(), Error>where
F: FnOnce(&mut LoggerBuilder, &Configuration),
fn init<F>( &self, support_url: &String, impl_version: &String, logger_hook: F, config: &Configuration ) -> Result<(), Error>where F: FnOnce(&mut LoggerBuilder, &Configuration),
source§impl CommandFactory for MachineCmd
impl CommandFactory for MachineCmd
source§impl Debug for MachineCmd
impl Debug for MachineCmd
source§impl FromArgMatches for MachineCmd
impl FromArgMatches for MachineCmd
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 MachineCmd
impl Parser for MachineCmd
§fn try_parse() -> Result<Self, Error<RichFormatter>>
fn try_parse() -> Result<Self, Error<RichFormatter>>
std::env::args_os()
, return Err on error.§fn parse_from<I, T>(itr: I) -> Selfwhere
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
fn parse_from<I, T>(itr: I) -> Selfwhere I: IntoIterator<Item = T>, T: Into<OsString> + Clone,
§fn try_parse_from<I, T>(itr: I) -> Result<Self, Error<RichFormatter>>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
fn try_parse_from<I, T>(itr: I) -> Result<Self, Error<RichFormatter>>where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,
§fn update_from<I, T>(&mut self, itr: I)where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
fn update_from<I, T>(&mut self, itr: I)where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,
§fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error<RichFormatter>>where
I: IntoIterator<Item = T>,
T: Into<OsString> + Clone,
fn try_update_from<I, T>(&mut self, itr: I) -> Result<(), Error<RichFormatter>>where I: IntoIterator<Item = T>, T: Into<OsString> + Clone,
Auto Trait Implementations§
impl RefUnwindSafe for MachineCmd
impl Send for MachineCmd
impl Sync for MachineCmd
impl Unpin for MachineCmd
impl UnwindSafe for MachineCmd
Blanket Implementations§
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 Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for Twhere Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,
§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 more§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§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).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.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 Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.