Expand description
Staking pallet benchmarking.
Modules§
- baseline
- A set of benchmarks which can establish a global baseline for all other benchmarking. These benchmarks do not require a pallet to be deployed.
- v1
- Macros for benchmarking a FRAME runtime.
Macros§
- add_
benchmark - This macro adds pallet benchmarks to a
Vec<BenchmarkBatch>
object. - assert_
impl_ all - Asserts that the type implements all of the given traits.
- assert_
type_ eq_ all - Asserts that all types in a list are equal to each other.
- benchmarks_
instance - Same as
benchmarks
but for instantiable module. - benchmarks_
instance_ pallet - Same as
benchmarks
but for instantiable pallet declaredframe_support::pallet
. - define_
benchmarks - Defines pallet configs that
add_benchmarks
andlist_benchmarks
use. Should be preferred instead of having a repetitive list of configs inadd_benchmark
andlist_benchmark
. - impl_
benchmark_ test_ suite - This creates a test suite which runs the module’s benchmarks.
- list_
benchmark - This macro allows users to easily generate a list of benchmarks for the pallets configured in the runtime.
- validate_
pov_ mode - Validates the passed
pov_mode
s. - whitelist
- Whitelist the given account.
- whitelist_
account
Structs§
- Analysis
- Benchmark
Batch - The results of a single of benchmark.
- Benchmark
Batch Split Results - The results of a single of benchmark, where time and db results are separated.
- Benchmark
Config - Configuration used to setup and run runtime benchmarks.
- Benchmark
List - A list of benchmarks available for a particular pallet and instance.
- Benchmark
Metadata - Benchmark
Recording - Records the time and proof size of a single benchmark iteration.
- Benchmark
Result - Result from running benchmarks on a FRAME pallet. Contains duration of the function call in nanoseconds along with the benchmark parameters used for that benchmark result.
- Linear
- Used by the new benchmarking code to specify that a benchmarking variable is linear
over some specified range, i.e.
Linear<0, 1_000>
means that the corresponding variable is allowed to range from0
to1000
, inclusive.
Enums§
- Analysis
Choice - Benchmark
Error - Possible errors returned from the benchmarking pipeline.
- Benchmark
Parameter - An alphabet of possible parameters to use for benchmarking.
- Benchmark
Selector
Traits§
- Benchmark
- Runtime api for benchmarking a FRAME runtime.
- Benchmarking
- The pallet benchmarking trait.
- Benchmarking
Setup - The required setup for creating a benchmark.
- Param
Range - Trait that must be implemented by all structs that can be used as parameter range types
in the new benchmarking code (i.e.
Linear<0, 1_000>
). Right now there is justLinear
but this could later be extended to support additional non-linear parameter ranges. - Recording
- The recording trait used to mark the start and end of a benchmark.
Functions§
- account
- Grab an account, seeded by a name and index.
- current_
time - Get the number of nanoseconds passed since the UNIX epoch
- show_
benchmark_ debug_ info - show error message and debugging info for the case of an error happening during a benchmark
- whitelisted_
caller - This caller account is automatically whitelisted for DB reads/writes by the benchmarking macro.
Attribute Macros§
- benchmark
- An attribute macro used to declare a benchmark within a benchmarking module. Must be
attached to a function definition containing an
#[extrinsic_call]
or#[block]
attribute. - benchmarks
- An attribute macro that can be attached to a (non-empty) module declaration. Doing so will designate that module as a benchmarking module.
- block
- An attribute macro used to specify that a block should be the measured portion of the enclosing benchmark function, This attribute is also used as a boundary designating where the benchmark setup code ends, and the benchmark verification code begins.
- extrinsic_
call - An attribute macro used to specify the extrinsic call inside a benchmark function, and also used as a boundary designating where the benchmark setup code ends, and the benchmark verification code begins.
- instance_
benchmarks - An attribute macro that can be attached to a (non-empty) module declaration. Doing so will designate that module as an instance benchmarking module.