Struct unc_vm_runner::ProfileDataV3
source · pub struct ProfileDataV3 { /* private fields */ }
Expand description
Profile of gas consumption.
Implementations§
source§impl ProfileDataV3
impl ProfileDataV3
pub fn new() -> Self
pub fn merge(&mut self, other: &ProfileDataV3)
pub fn add_action_cost(&mut self, action: ActionCosts, value: Gas)
pub fn add_ext_cost(&mut self, ext: ExtCosts, value: Gas)
sourcepub fn compute_wasm_instruction_cost(&mut self, total_gas_burnt: Gas)
pub fn compute_wasm_instruction_cost(&mut self, total_gas_burnt: Gas)
WasmInstruction is the only cost we don’t explicitly account for. Instead, we compute it at the end of contract call as the difference between total gas burnt and what we’ve explicitly accounted for in the profile.
This is because WasmInstruction is the hottest cost and is implemented with the help on the VM side, so we don’t want to have profiling logic there both for simplicity and efficiency reasons.
pub fn get_action_cost(&self, action: ActionCosts) -> Gas
pub fn get_ext_cost(&self, ext: ExtCosts) -> Gas
pub fn get_wasm_cost(&self) -> Gas
pub fn action_gas(&self) -> Gas
sourcepub fn total_compute_usage(&self, ext_costs_config: &ExtCostsConfig) -> Compute
pub fn total_compute_usage(&self, ext_costs_config: &ExtCostsConfig) -> Compute
Returns total compute usage of host calls.
Trait Implementations§
source§impl BorshDeserialize for ProfileDataV3
impl BorshDeserialize for ProfileDataV3
fn deserialize_reader<R: Read>(rd: &mut R) -> Result<Self>
source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
source§impl BorshSerialize for ProfileDataV3
impl BorshSerialize for ProfileDataV3
source§impl Clone for ProfileDataV3
impl Clone for ProfileDataV3
source§fn clone(&self) -> ProfileDataV3
fn clone(&self) -> ProfileDataV3
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for ProfileDataV3
impl Debug for ProfileDataV3
source§impl Default for ProfileDataV3
impl Default for ProfileDataV3
source§fn default() -> ProfileDataV3
fn default() -> ProfileDataV3
Returns the “default value” for a type. Read more
source§impl PartialEq for ProfileDataV3
impl PartialEq for ProfileDataV3
source§fn eq(&self, other: &ProfileDataV3) -> bool
fn eq(&self, other: &ProfileDataV3) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl Eq for ProfileDataV3
impl StructuralPartialEq for ProfileDataV3
Auto Trait Implementations§
impl Freeze for ProfileDataV3
impl RefUnwindSafe for ProfileDataV3
impl Send for ProfileDataV3
impl Sync for ProfileDataV3
impl Unpin for ProfileDataV3
impl UnwindSafe for ProfileDataV3
Blanket Implementations§
source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more