gear_core::gas_metering

Struct MemoryWeights

Source
pub struct MemoryWeights {
    pub lazy_pages_signal_read: Weight,
    pub lazy_pages_signal_write: Weight,
    pub lazy_pages_signal_write_after_read: Weight,
    pub lazy_pages_host_func_read: Weight,
    pub lazy_pages_host_func_write: Weight,
    pub lazy_pages_host_func_write_after_read: Weight,
    pub load_page_data: Weight,
    pub upload_page_data: Weight,
    pub mem_grow: Weight,
    pub mem_grow_per_page: Weight,
    pub parachain_read_heuristic: Weight,
}
Expand description

Describes the weight for memory interaction.

Each weight with lazy_pages_ prefix includes weight for storage read, because for each first page access we need to at least check whether page exists in storage. But they do not include cost for loading page data from storage into program memory. This weight is taken in account separately, when loading occurs.

Lazy-pages write accesses does not include cost for uploading page data to storage, because uploading happens after execution, so benchmarks do not include this cost. But they include cost for processing changed page data in runtime.

Fields§

§lazy_pages_signal_read: Weight

Cost per one [GearPage] signal read processing in lazy-pages,

§lazy_pages_signal_write: Weight

Cost per one [GearPage] signal write processing in lazy-pages,

§lazy_pages_signal_write_after_read: Weight

Cost per one [GearPage] signal write after read processing in lazy-pages,

§lazy_pages_host_func_read: Weight

Cost per one [GearPage] host func read access processing in lazy-pages,

§lazy_pages_host_func_write: Weight

Cost per one [GearPage] host func write access processing in lazy-pages,

§lazy_pages_host_func_write_after_read: Weight

Cost per one [GearPage] host func write after read access processing in lazy-pages,

§load_page_data: Weight

Cost per one [GearPage] data loading from storage and moving it in program memory. Does not include cost for storage read, because it is taken in account separately.

§upload_page_data: Weight

Cost per one [GearPage] uploading data to storage. Does not include cost for processing changed page data in runtime, cause it is taken in account separately.

§mem_grow: Weight

Cost per one [WasmPage] for memory growing.

§mem_grow_per_page: Weight

Cost per one [WasmPage] for memory growing.

§parachain_read_heuristic: Weight

Cost per one [GearPage]. When we read page data from storage in para-chain, then it should be sent to relay-chain, in order to use it for process queue execution. So, reading from storage cause additional resources consumption after block(s) production on para-chain.

Trait Implementations§

Source§

impl Clone for MemoryWeights

Source§

fn clone(&self) -> MemoryWeights

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MemoryWeights

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MemoryWeights

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl From<MemoryWeights> for LazyPagesCosts

Source§

fn from(val: MemoryWeights) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> JsonSchemaMaybe for T