feat(air)!: change fold over canon map iterator contents [fixes VM-620] (#843)

This commit is contained in:
raftedproc 2024-06-25 13:39:16 +01:00 committed by GitHub
parent 7eb99570d5
commit 325cce2f54
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 2649 additions and 251 deletions

View File

@ -15,6 +15,7 @@
*/
use super::*;
use crate::execution_step::execution_context::stream_map_key::StreamMapKey;
use crate::execution_step::value_types::populate_tetraplet_with_lambda;
use crate::execution_step::value_types::IterableValue;
use crate::execution_step::CatchableError;
@ -26,6 +27,7 @@ use crate::SecurityTetraplet;
use air_interpreter_data::Provenance;
use air_parser::ast;
use std::collections::HashSet;
use std::ops::Deref;
use std::rc::Rc;
@ -104,10 +106,21 @@ pub(crate) fn create_canon_stream_map_iterable_value(
return Ok(FoldIterableScalar::Empty);
}
// TODO: this one is a relatively long operation and will be refactored in Boxed Value
// TODO: this one is a relatively heavy operation and will be refactored in Boxed Value
// Can not create iterable from existing CanonStreamMap b/c CSM contains a map with
// a limited lifetime but the boxed value needs static lifetime.
let values = canon_stream_map.iter().cloned().collect::<Vec<_>>();
let mut met_keys = HashSet::new();
let mut values = vec![];
for val in canon_stream_map.canon_stream_map.iter().rev() {
if let Some(map_key) = StreamMapKey::from_kvpair_owned(val) {
if !met_keys.contains(&map_key) {
met_keys.insert(map_key);
values.push(val.clone());
}
}
}
let iterable_ingredients = CanonStreamMapIterableIngredients::init(values);
let iterable = Box::new(iterable_ingredients);
Ok(FoldIterableScalar::ScalarBased(iterable))

View File

@ -85,7 +85,9 @@ impl CanonStreamMap {
json_map.into()
}
pub(crate) fn iter(&self) -> impl ExactSizeIterator<Item = &ValueAggregate> {
pub(crate) fn iter(
&self,
) -> impl ExactSizeIterator<Item = &ValueAggregate> + DoubleEndedIterator<Item = &ValueAggregate> {
self.values.iter()
}

View File

@ -951,8 +951,14 @@ async fn fold_canon_stream_map() {
r#"
(seq
(seq
(ap ("key" "value1") %map)
(ap (-42 "value2") %map)
(seq
(ap ("key" "value4") %map)
(ap (-42 "value3") %map)
)
(seq
(ap (-42 "value2") %map)
(ap ("key" "value1") %map)
)
)
(seq
(canon "{vm_1_peer_name}" %map #%canon_map)
@ -977,17 +983,26 @@ async fn fold_canon_stream_map() {
let mut cid_tracker: ExecutionCidState = ExecutionCidState::new();
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_1_peer_id, "service_id": ""});
let map_value_1 = json!({"key": "key", "value": "value1"});
let map_value_2 = json!({"key": -42, "value": "value2"});
let map_value_1 = json!({"key": "key", "value": "value1"});
let map_value_3 = json!({"key": -42, "value": "value3"});
let map_value_4 = json!({"key": "key", "value": "value4"});
let expected_trace: Vec<ExecutedState> = vec![
executed_state::ap(0),
executed_state::ap(0),
executed_state::ap(0),
executed_state::ap(0),
canon_tracked(
json!({"tetraplet": tetraplet,
"values": [
{
"result": map_value_1,
"result": map_value_4,
"tetraplet": tetraplet,
"provenance": Provenance::Literal,
},
{
"result": map_value_3,
"tetraplet": tetraplet,
"provenance": Provenance::Literal,
},
@ -996,6 +1011,11 @@ async fn fold_canon_stream_map() {
"tetraplet": tetraplet,
"provenance": Provenance::Literal,
},
{
"result": map_value_1,
"tetraplet": tetraplet,
"provenance": Provenance::Literal,
},
]}),
&mut cid_tracker,
),
@ -1019,167 +1039,3 @@ async fn fold_canon_stream_map() {
assert_eq!(&*actual_trace, expected_trace,);
}
/// This test checks that fold over map and fold over canon map both produce
/// the same kvpairs sequences. Please note that call results produced by
/// the folds mentioned differ in their tetraplets b/c testing framework
/// increments service name index for each call used.
#[tokio::test]
async fn fold_map_and_canon_map_orders_are_same() {
let vm_1_peer_name = "vm_1_peer_id";
let vm_1_peer_id = at(vm_1_peer_name);
let script = format!(
r#"
(seq
(seq
(seq
(ap ("key" "value1") %map)
(ap (-42 "value2") %map)
)
(seq
(ap (42 "value3") %map)
(ap ("other" "value4") %map)
)
)
(seq
(seq
(canon "{vm_1_peer_name}" %map #%canon_map)
(fold #%canon_map iter
(seq
(call "{vm_1_peer_name}" ("m" "f") [iter] scalar) ; behaviour = echo
(next iter)
)
)
)
(fold %map iter
(seq
(call "{vm_1_peer_name}" ("m" "f") [iter] scalar1) ; behaviour = echo
(next iter)
)
)
)
)
"#
);
let executor = AirScriptExecutor::from_annotated(TestRunParameters::from_init_peer_id(vm_1_peer_name), &script)
.await
.expect("invalid test AIR script");
let result = executor.execute_all(vm_1_peer_name).await.unwrap();
let actual_trace = trace_from_result(&result.last().unwrap());
let mut cid_tracker: ExecutionCidState = ExecutionCidState::new();
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_1_peer_id, "service_id": ""});
let map_value_1 = json!({"key": "key", "value": "value1"});
let map_value_2 = json!({"key": -42, "value": "value2"});
let map_value_3 = json!({"key": 42, "value": "value3"});
let map_value_4 = json!({"key": "other", "value": "value4"});
let expected_trace: Vec<ExecutedState> = vec![
executed_state::ap(0),
executed_state::ap(0),
executed_state::ap(0),
executed_state::ap(0),
canon_tracked(
json!({"tetraplet": tetraplet,
"values": [
{
"result": map_value_1,
"tetraplet": tetraplet,
"provenance": Provenance::Literal,
},
{
"result": map_value_2,
"tetraplet": tetraplet,
"provenance": Provenance::Literal,
},
{
"result": map_value_3,
"tetraplet": tetraplet,
"provenance": Provenance::Literal,
},
{
"result": map_value_4,
"tetraplet": tetraplet,
"provenance": Provenance::Literal,
},
]}),
&mut cid_tracker,
),
scalar_tracked!(
map_value_1.clone(),
cid_tracker,
peer = &vm_1_peer_id,
service = "m..0",
function = "f",
args = [map_value_1.clone()]
),
scalar_tracked!(
map_value_2.clone(),
cid_tracker,
peer = &vm_1_peer_id,
service = "m..0",
function = "f",
args = [map_value_2.clone()]
),
scalar_tracked!(
map_value_3.clone(),
cid_tracker,
peer = &vm_1_peer_id,
service = "m..0",
function = "f",
args = [map_value_3.clone()]
),
scalar_tracked!(
map_value_4.clone(),
cid_tracker,
peer = &vm_1_peer_id,
service = "m..0",
function = "f",
args = [map_value_4.clone()]
),
fold(vec![
subtrace_lore(0, subtrace_desc(10, 1), subtrace_desc(14, 0)),
subtrace_lore(1, subtrace_desc(11, 1), subtrace_desc(14, 0)),
subtrace_lore(2, subtrace_desc(12, 1), subtrace_desc(14, 0)),
subtrace_lore(3, subtrace_desc(13, 1), subtrace_desc(14, 0)),
]),
scalar_tracked!(
map_value_1.clone(),
cid_tracker,
peer = &vm_1_peer_id,
service = "m..1",
function = "f",
args = [map_value_1]
),
scalar_tracked!(
map_value_2.clone(),
cid_tracker,
peer = &vm_1_peer_id,
service = "m..1",
function = "f",
args = [map_value_2]
),
scalar_tracked!(
map_value_3.clone(),
cid_tracker,
peer = &vm_1_peer_id,
service = "m..1",
function = "f",
args = [map_value_3]
),
scalar_tracked!(
map_value_4.clone(),
cid_tracker,
peer = &vm_1_peer_id,
service = "m..1",
function = "f",
args = [map_value_4]
),
];
assert_eq!(&*actual_trace, expected_trace);
}

File diff suppressed because it is too large Load Diff

View File

@ -163,87 +163,348 @@ Machine 0dfa4f098d7a6ef0d77a7bbc028ccf65fd6dc8d37be8a466ab3933a1a4a8e113:
execute: 29.00µs
new: 40.00µs
Machine 5fce753d17dde8b439ef04cdbce135789eb44646c753548ad79a37b88cf17f0a:
Platform: macOS-12.3.1-arm64-arm-64bit
Timestamp: 2023-02-13 16:59:20.507375+00:00
AquaVM version: 0.35.1
Platform: macOS-13.5.1-arm64-arm-64bit
Timestamp: 2023-12-20 20:43:14.154949+00:00
AquaVM version: 0.55.0
Benches:
big_values_data (31.97ms): Loading a trace with huge values
air::runner::execute_air: 31.97ms
farewell_step::outcome::from_success_result: 10.56ms
populate_outcome_from_contexts: 8.69ms
to_vec(call_results): 108.00µs
to_vec(data): 5.66ms
preparation_step::preparation::prepare: 17.47ms
air::preparation_step::preparation::make_exec_ctx: 1.40ms
air_interpreter_data::interpreter_data::serde_json::from_slice: 10.68ms
air_parser::parser::air_parser::parse: 1.86ms
runner::execute: 126.00µs
dashboard (103.60ms): big dashboard test
air::runner::execute_air: 103.60ms
farewell_step::outcome::from_success_result: 4.71ms
populate_outcome_from_contexts: 3.70ms
to_vec(call_results): 162.00µs
to_vec(data): 1.87ms
preparation_step::preparation::prepare: 16.17ms
air::preparation_step::preparation::make_exec_ctx: 1.61ms
air_interpreter_data::interpreter_data::serde_json::from_slice: 5.50ms
air_parser::parser::air_parser::parse: 6.11ms
runner::execute: 78.68ms
execute: 66.40ms
execute: 9.37ms
instructions::call::resolved_call::prepare_request_params: 1.43ms
instructions::call::resolved_call::serde_json::to_string(tetraplets): 398.00µs
resolver::resolve::resolve_ast_variable: 335.00µs
resolve_variable: 105.00µs
resolver::resolve::resolve_ast_variable: 946.00µs
resolve_variable: 277.00µs
new: 40.53ms
resolve_ast_scalar: 29.73ms
resolve_ast_variable: 18.24ms
resolve_variable: 5.84ms
long_data (24.35ms): Long data trace
air::runner::execute_air: 24.35ms
farewell_step::outcome::from_success_result: 6.79ms
populate_outcome_from_contexts: 5.07ms
to_vec(call_results): 108.00µs
to_vec(data): 2.23ms
preparation_step::preparation::prepare: 13.54ms
air::preparation_step::preparation::make_exec_ctx: 1.75ms
air_interpreter_data::interpreter_data::serde_json::from_slice: 6.77ms
air_parser::parser::air_parser::parse: 1.84ms
runner::execute: 130.00µs
network_explore (46.01ms): 5 peers of network are discovered
air::runner::execute_air: 46.01ms
farewell_step::outcome::from_success_result: 5.48ms
populate_outcome_from_contexts: 4.50ms
to_vec(call_results): 105.00µs
to_vec(data): 2.25ms
preparation_step::preparation::prepare: 18.74ms
air::preparation_step::preparation::make_exec_ctx: 1.98ms
air_interpreter_data::interpreter_data::serde_json::from_slice: 7.05ms
air_parser::parser::air_parser::parse: 6.74ms
runner::execute: 17.86ms
execute: 9.97ms
execute: 3.17ms
resolve_ast_variable: 339.00µs
resolve_variable: 94.00µs
new: 4.10ms
resolve_ast_scalar: 2.65ms
resolve_ast_variable: 1.67ms
resolve_variable: 547.00µs
parser_10000_100 (48.47ms): Running very long AIR script with lot of variables and assignments
air::runner::execute_air: 48.47ms
farewell_step::outcome::from_success_result: 4.70ms
populate_outcome_from_contexts: 3.48ms
to_vec(call_results): 105.00µs
to_vec(data): 1.60ms
preparation_step::preparation::prepare: 34.34ms
air::preparation_step::preparation::make_exec_ctx: 1.41ms
air_parser::parser::air_parser::parse: 29.66ms
runner::execute: 4.39ms
execute: 2.00ms
execute: 483.00µs
new: 471.00µs
Features:
big-values-data (19.30ms; 59.000 MiB, 59.000 MiB): Loading a trace with huge values
air::runner::execute_air: 19.30ms
preparation_step::preparation::parse_data: 7.86ms
try_from_slice: 7.75ms
preparation_step::preparation::prepare: 251.00µs
air::preparation_step::preparation::make_exec_ctx: 57.00µs
CallResultsRepr.deserialize: 15.00µs
air_parser::parser::air_parser::parse: 38.00µs
runner::execute: 10.00µs
runner::farewell: 5.85ms
from_success_result: 5.83ms
populate_outcome_from_contexts: 5.72ms
CallRequestsRepr.serialize: 19.00µs
InterpreterData::serialize: 3.66ms
signing_step::sign_produced_cids: 135.00µs
verification_step::verify: 4.92ms
verify: 4.44ms
call-requests500 (47.90ms; 70.562 MiB, 70.562 MiB): multiple call requests
air::runner::execute_air: 47.90ms
preparation_step::preparation::parse_data: 163.00µs
try_from_slice: 120.00µs
preparation_step::preparation::prepare: 309.00µs
air::preparation_step::preparation::make_exec_ctx: 83.00µs
CallResultsRepr.deserialize: 50.00µs
air_parser::parser::air_parser::parse: 76.00µs
runner::execute: 26.50ms
runner::farewell: 20.50ms
from_success_result: 20.50ms
populate_outcome_from_contexts: 20.30ms
CallRequestsRepr.serialize: 19.90ms
InterpreterData::serialize: 249.00µs
signing_step::sign_produced_cids: 143.00µs
verification_step::verify: 75.00µs
verify: 12.00µs
call-results500 (20.70ms; 54.438 MiB, 54.438 MiB): multiple call results
air::runner::execute_air: 20.70ms
preparation_step::preparation::parse_data: 789.00µs
try_from_slice: 744.00µs
preparation_step::preparation::prepare: 1.24ms
air::preparation_step::preparation::make_exec_ctx: 982.00µs
CallResultsRepr.deserialize: 947.00µs
air_parser::parser::air_parser::parse: 102.00µs
runner::execute: 15.80ms
runner::farewell: 2.24ms
from_success_result: 2.21ms
populate_outcome_from_contexts: 1.63ms
CallRequestsRepr.serialize: 14.00µs
InterpreterData::serialize: 1.09ms
signing_step::sign_produced_cids: 350.00µs
verification_step::verify: 96.00µs
verify: 11.00µs
canon-map-key-by-lens (13.90ms; 56.625 MiB, 56.625 MiB): benchmarking a map insert operation
air::runner::execute_air: 13.90ms
preparation_step::preparation::parse_data: 4.39ms
try_from_slice: 4.34ms
preparation_step::preparation::prepare: 515.00µs
air::preparation_step::preparation::make_exec_ctx: 277.00µs
CallResultsRepr.deserialize: 15.00µs
air_parser::parser::air_parser::parse: 87.00µs
runner::execute: 2.68ms
runner::farewell: 2.19ms
from_success_result: 2.16ms
populate_outcome_from_contexts: 1.74ms
CallRequestsRepr.serialize: 14.00µs
InterpreterData::serialize: 1.36ms
signing_step::sign_produced_cids: 122.00µs
verification_step::verify: 3.82ms
verify: 3.36ms
canon-map-key-element-by-lens (13.90ms; 56.625 MiB, 56.625 MiB): benchmarking a map insert operation
air::runner::execute_air: 13.90ms
preparation_step::preparation::parse_data: 4.42ms
try_from_slice: 4.36ms
preparation_step::preparation::prepare: 501.00µs
air::preparation_step::preparation::make_exec_ctx: 271.00µs
CallResultsRepr.deserialize: 14.00µs
air_parser::parser::air_parser::parse: 85.00µs
runner::execute: 2.70ms
runner::farewell: 2.18ms
from_success_result: 2.15ms
populate_outcome_from_contexts: 1.75ms
CallRequestsRepr.serialize: 13.00µs
InterpreterData::serialize: 1.37ms
signing_step::sign_produced_cids: 127.00µs
verification_step::verify: 3.80ms
verify: 3.37ms
canon-map-multiple-keys (11.50ms; 54.500 MiB, 54.500 MiB): benchmarking a map insert operation
air::runner::execute_air: 11.50ms
preparation_step::preparation::parse_data: 504.00µs
try_from_slice: 448.00µs
preparation_step::preparation::prepare: 265.00µs
air::preparation_step::preparation::make_exec_ctx: 50.00µs
CallResultsRepr.deserialize: 14.00µs
air_parser::parser::air_parser::parse: 70.00µs
runner::execute: 7.96ms
runner::farewell: 1.95ms
from_success_result: 1.93ms
populate_outcome_from_contexts: 1.55ms
CallRequestsRepr.serialize: 13.00µs
InterpreterData::serialize: 1.17ms
signing_step::sign_produced_cids: 128.00µs
verification_step::verify: 479.00µs
verify: 44.00µs
canon-map-scalar-multiple-keys (5.54ms; 53.125 MiB, 53.125 MiB): benchmarking a map insert operation
air::runner::execute_air: 5.54ms
preparation_step::preparation::parse_data: 485.00µs
try_from_slice: 431.00µs
preparation_step::preparation::prepare: 274.00µs
air::preparation_step::preparation::make_exec_ctx: 52.00µs
CallResultsRepr.deserialize: 14.00µs
air_parser::parser::air_parser::parse: 73.00µs
runner::execute: 3.50ms
runner::farewell: 474.00µs
from_success_result: 452.00µs
populate_outcome_from_contexts: 410.00µs
CallRequestsRepr.serialize: 13.00µs
InterpreterData::serialize: 118.00µs
signing_step::sign_produced_cids: 123.00µs
verification_step::verify: 497.00µs
verify: 50.00µs
canon-map-scalar-single-key (4.27ms; 53.000 MiB, 53.000 MiB): benchmarking a map insert operation
air::runner::execute_air: 4.27ms
preparation_step::preparation::parse_data: 518.00µs
try_from_slice: 461.00µs
preparation_step::preparation::prepare: 261.00µs
air::preparation_step::preparation::make_exec_ctx: 50.00µs
CallResultsRepr.deserialize: 14.00µs
air_parser::parser::air_parser::parse: 66.00µs
runner::execute: 2.18ms
runner::farewell: 484.00µs
from_success_result: 462.00µs
populate_outcome_from_contexts: 395.00µs
CallRequestsRepr.serialize: 13.00µs
InterpreterData::serialize: 131.00µs
signing_step::sign_produced_cids: 126.00µs
verification_step::verify: 509.00µs
verify: 80.00µs
canon-map-single-key (9.34ms; 55.312 MiB, 55.312 MiB): benchmarking a map insert operation
air::runner::execute_air: 9.34ms
preparation_step::preparation::parse_data: 527.00µs
try_from_slice: 472.00µs
preparation_step::preparation::prepare: 289.00µs
air::preparation_step::preparation::make_exec_ctx: 56.00µs
CallResultsRepr.deserialize: 17.00µs
air_parser::parser::air_parser::parse: 83.00µs
runner::execute: 5.64ms
runner::farewell: 2.05ms
from_success_result: 2.02ms
populate_outcome_from_contexts: 1.72ms
CallRequestsRepr.serialize: 13.00µs
InterpreterData::serialize: 1.37ms
signing_step::sign_produced_cids: 124.00µs
verification_step::verify: 525.00µs
verify: 85.00µs
dashboard (6.91ms; 52.625 MiB, 52.625 MiB): big dashboard test
air::runner::execute_air: 6.91ms
preparation_step::preparation::parse_data: 1.33ms
try_from_slice: 1.27ms
preparation_step::preparation::prepare: 400.00µs
air::preparation_step::preparation::make_exec_ctx: 73.00µs
CallResultsRepr.deserialize: 15.00µs
air_parser::parser::air_parser::parse: 179.00µs
runner::execute: 966.00µs
runner::farewell: 578.00µs
from_success_result: 556.00µs
populate_outcome_from_contexts: 507.00µs
CallRequestsRepr.serialize: 24.00µs
InterpreterData::serialize: 243.00µs
signing_step::sign_produced_cids: 125.00µs
verification_step::verify: 3.32ms
verify: 184.00µs
long-data (6.31ms; 53.812 MiB, 53.812 MiB): Long data trace
air::runner::execute_air: 6.31ms
preparation_step::preparation::parse_data: 2.51ms
try_from_slice: 2.46ms
preparation_step::preparation::prepare: 248.00µs
air::preparation_step::preparation::make_exec_ctx: 71.00µs
CallResultsRepr.deserialize: 14.00µs
air_parser::parser::air_parser::parse: 32.00µs
runner::execute: 9.00µs
runner::farewell: 1.16ms
from_success_result: 1.14ms
populate_outcome_from_contexts: 1.10ms
CallRequestsRepr.serialize: 13.00µs
InterpreterData::serialize: 487.00µs
signing_step::sign_produced_cids: 127.00µs
verification_step::verify: 2.08ms
verify: 790.00µs
multiple-cids10 (3.26ms; 52.500 MiB, 52.500 MiB): verifying multiple CIDs for single peer
air::runner::execute_air: 3.26ms
preparation_step::preparation::parse_data: 586.00µs
try_from_slice: 513.00µs
preparation_step::preparation::prepare: 290.00µs
air::preparation_step::preparation::make_exec_ctx: 66.00µs
CallResultsRepr.deserialize: 17.00µs
air_parser::parser::air_parser::parse: 79.00µs
runner::execute: 544.00µs
runner::farewell: 440.00µs
from_success_result: 418.00µs
populate_outcome_from_contexts: 361.00µs
CallRequestsRepr.serialize: 14.00µs
InterpreterData::serialize: 150.00µs
signing_step::sign_produced_cids: 127.00µs
verification_step::verify: 1.07ms
verify: 217.00µs
multiple-peers8 (11.90ms; 53.438 MiB, 53.438 MiB): verifying many CIDs for many peers
air::runner::execute_air: 11.90ms
preparation_step::preparation::parse_data: 1.88ms
try_from_slice: 1.81ms
preparation_step::preparation::prepare: 350.00µs
air::preparation_step::preparation::make_exec_ctx: 127.00µs
CallResultsRepr.deserialize: 16.00µs
air_parser::parser::air_parser::parse: 76.00µs
runner::execute: 3.52ms
runner::farewell: 1.16ms
from_success_result: 1.12ms
populate_outcome_from_contexts: 988.00µs
CallRequestsRepr.serialize: 15.00µs
InterpreterData::serialize: 653.00µs
signing_step::sign_produced_cids: 124.00µs
verification_step::verify: 4.67ms
verify: 880.00µs
multiple-sigs30 (22.40ms; 56.188 MiB, 56.188 MiB): signing multiple CIDs
air::runner::execute_air: 22.40ms
preparation_step::preparation::parse_data: 5.54ms
try_from_slice: 5.47ms
preparation_step::preparation::prepare: 462.00µs
air::preparation_step::preparation::make_exec_ctx: 233.00µs
CallResultsRepr.deserialize: 14.00µs
air_parser::parser::air_parser::parse: 77.00µs
runner::execute: 9.00ms
runner::farewell: 2.98ms
from_success_result: 2.95ms
populate_outcome_from_contexts: 2.75ms
CallRequestsRepr.serialize: 13.00µs
InterpreterData::serialize: 1.73ms
signing_step::sign_produced_cids: 530.00µs
verification_step::verify: 3.67ms
verify: 1.55ms
network-explore (3.70ms; 52.375 MiB, 52.375 MiB): 5 peers of network are discovered
air::runner::execute_air: 3.70ms
preparation_step::preparation::parse_data: 600.00µs
try_from_slice: 544.00µs
preparation_step::preparation::prepare: 289.00µs
air::preparation_step::preparation::make_exec_ctx: 55.00µs
CallResultsRepr.deserialize: 14.00µs
air_parser::parser::air_parser::parse: 90.00µs
runner::execute: 170.00µs
runner::farewell: 370.00µs
from_success_result: 346.00µs
populate_outcome_from_contexts: 301.00µs
CallRequestsRepr.serialize: 15.00µs
InterpreterData::serialize: 100.00µs
signing_step::sign_produced_cids: 129.00µs
verification_step::verify: 1.95ms
verify: 73.00µs
null (965.00µs; 52.375 MiB, 52.375 MiB): Empty data and null script
air::runner::execute_air: 965.00µs
preparation_step::preparation::parse_data: 38.00µs
preparation_step::preparation::prepare: 260.00µs
air::preparation_step::preparation::make_exec_ctx: 53.00µs
CallResultsRepr.deserialize: 16.00µs
air_parser::parser::air_parser::parse: 40.00µs
runner::execute: 10.00µs
runner::farewell: 280.00µs
from_success_result: 258.00µs
populate_outcome_from_contexts: 216.00µs
CallRequestsRepr.serialize: 16.00µs
InterpreterData::serialize: 34.00µs
signing_step::sign_produced_cids: 136.00µs
verification_step::verify: 40.00µs
verify: 11.00µs
parser-10000-100 (27.30ms; 54.625 MiB, 54.625 MiB): long air script with lot of variable assignments
air::runner::execute_air: 27.30ms
preparation_step::preparation::parse_data: 39.00µs
preparation_step::preparation::prepare: 25.40ms
air::preparation_step::preparation::make_exec_ctx: 55.00µs
CallResultsRepr.deserialize: 18.00µs
air_parser::parser::air_parser::parse: 25.20ms
runner::execute: 51.00µs
runner::farewell: 277.00µs
from_success_result: 255.00µs
populate_outcome_from_contexts: 215.00µs
CallRequestsRepr.serialize: 13.00µs
InterpreterData::serialize: 34.00µs
signing_step::sign_produced_cids: 132.00µs
verification_step::verify: 45.00µs
verify: 11.00µs
parser-calls-10000-100 (25.60ms; 54.375 MiB, 54.375 MiB): multiple calls parser benchmark
air::runner::execute_air: 25.60ms
preparation_step::preparation::parse_data: 40.00µs
preparation_step::preparation::prepare: 23.60ms
air::preparation_step::preparation::make_exec_ctx: 58.00µs
CallResultsRepr.deserialize: 18.00µs
air_parser::parser::air_parser::parse: 23.40ms
runner::execute: 49.00µs
runner::farewell: 282.00µs
from_success_result: 260.00µs
populate_outcome_from_contexts: 218.00µs
CallRequestsRepr.serialize: 19.00µs
InterpreterData::serialize: 34.00µs
signing_step::sign_produced_cids: 135.00µs
verification_step::verify: 47.00µs
verify: 12.00µs
populate-map-multiple-keys (4.67ms; 53.000 MiB, 53.000 MiB): benchmarking a map insert operation
air::runner::execute_air: 4.67ms
preparation_step::preparation::parse_data: 189.00µs
try_from_slice: 136.00µs
preparation_step::preparation::prepare: 279.00µs
air::preparation_step::preparation::make_exec_ctx: 50.00µs
CallResultsRepr.deserialize: 14.00µs
air_parser::parser::air_parser::parse: 71.00µs
runner::execute: 3.01ms
runner::farewell: 399.00µs
from_success_result: 376.00µs
populate_outcome_from_contexts: 335.00µs
CallRequestsRepr.serialize: 13.00µs
InterpreterData::serialize: 113.00µs
signing_step::sign_produced_cids: 127.00µs
verification_step::verify: 470.00µs
verify: 44.00µs
populate-map-single-key (3.63ms; 52.938 MiB, 52.938 MiB): benchmarking a map insert operation
air::runner::execute_air: 3.63ms
preparation_step::preparation::parse_data: 261.00µs
try_from_slice: 209.00µs
preparation_step::preparation::prepare: 269.00µs
air::preparation_step::preparation::make_exec_ctx: 50.00µs
CallResultsRepr.deserialize: 14.00µs
air_parser::parser::air_parser::parse: 68.00µs
runner::execute: 1.85ms
runner::farewell: 437.00µs
from_success_result: 414.00µs
populate_outcome_from_contexts: 349.00µs
CallRequestsRepr.serialize: 14.00µs
InterpreterData::serialize: 135.00µs
signing_step::sign_produced_cids: 126.00µs
verification_step::verify: 507.00µs
verify: 82.00µs
Machine 6255fb8e3cc03d98c20d41976db6948399d842969b7d1c08fafdc7186fb4f77c:
Platform: Linux-6.5.9-arch2-1-x86_64-with-glibc2.35
Timestamp: 2024-02-20 11:21:14.454394+00:00
@ -1316,6 +1577,501 @@ Machine 88756ca30bfb93b0da6a64252adc98fc3e97e142c3b4970af3d2948fd66107b4:
signing_step::sign_produced_cids: 96.00µs
verification_step::verify: 346.00µs
verify: 35.00µs
Machine 905018bb0c21973955e36570d94632d1b42bda84b7e8ea134337a57a1cfe8f3d:
Platform: Linux-6.9.1-arch1-1-x86_64-with-glibc2.35
Timestamp: 2024-06-11 21:04:59.876748+00:00
AquaVM version: 0.63.0
Benches:
Features:
big-values-data (2.66ms; 14.250 MiB, 14.250 MiB): Loading a trace with huge values
air::runner::execute_air: 2.66ms
preparation_step::preparation::parse_data: 860.00µs
serialize: 12.00µs
try_from_slice: 789.00µs
preparation_step::preparation::prepare: 114.00µs
air::preparation_step::preparation::make_exec_ctx: 32.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 14.00µs
runner::execute: 7.00µs
runner::farewell: 675.00µs
from_success_result: 661.00µs
populate_outcome_from_contexts: 633.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 92.00µs
air_interpreter_data::interpreter_data::serialize: 422.00µs
signing_step::sign_produced_cids: 53.00µs
verification_step::verify: 867.00µs
verify: 671.00µs
call-requests500 (16.20ms; 15.312 MiB, 15.312 MiB): multiple call requests
air::runner::execute_air: 16.20ms
preparation_step::preparation::parse_data: 102.00µs
serialize: 11.00µs
try_from_slice: 36.00µs
preparation_step::preparation::prepare: 142.00µs
air::preparation_step::preparation::make_exec_ctx: 31.00µs
CallResultsRepr.deserialize: 10.00µs
air_parser::parser::air_parser::parse: 39.00µs
runner::execute: 14.20ms
runner::farewell: 1.54ms
from_success_result: 1.53ms
populate_outcome_from_contexts: 1.41ms
air::farewell_step::outcome::CallRequestsRepr.serialize: 1.24ms
air::farewell_step::outcome::InterpreterDataEnv::serialize: 18.00µs
air_interpreter_data::interpreter_data::serialize: 49.00µs
signing_step::sign_produced_cids: 59.00µs
verification_step::verify: 59.00µs
verify: 6.00µs
call-result-100mb (222.00ms; 538.438 MiB, 538.438 MiB): Memory intensive benchmarking test
air::runner::execute_air: 222.00ms
preparation_step::preparation::parse_data: 42.40ms
serialize: 12.00µs
try_from_slice: 42.33ms
preparation_step::preparation::prepare: 133.00µs
air::preparation_step::preparation::make_exec_ctx: 30.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 32.00µs
runner::execute: 70.30ms
runner::farewell: 41.90ms
from_success_result: 41.90ms
populate_outcome_from_contexts: 41.90ms
air::farewell_step::outcome::CallRequestsRepr.serialize: 11.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 10.70ms
air_interpreter_data::interpreter_data::serialize: 31.00ms
signing_step::sign_produced_cids: 61.00µs
verification_step::verify: 67.00ms
verify: 66.80ms
call-results500 (12.60ms; 12.312 MiB, 12.312 MiB): multiple call results
air::runner::execute_air: 12.60ms
preparation_step::preparation::parse_data: 156.00µs
serialize: 11.00µs
try_from_slice: 88.00µs
preparation_step::preparation::prepare: 230.00µs
air::preparation_step::preparation::make_exec_ctx: 117.00µs
CallResultsRepr.deserialize: 94.00µs
air_parser::parser::air_parser::parse: 40.00µs
runner::execute: 10.40ms
runner::farewell: 1.34ms
from_success_result: 1.32ms
populate_outcome_from_contexts: 1.01ms
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 123.00µs
air_interpreter_data::interpreter_data::serialize: 489.00µs
signing_step::sign_produced_cids: 271.00µs
verification_step::verify: 68.00µs
verify: 7.00µs
canon-map-100mb (484.00ms; 1.069 GiB, 1.069 GiB): Memory intensive benchmarking test with canon map
air::runner::execute_air: 484.00ms
preparation_step::preparation::parse_data: 43.60ms
serialize: 12.00µs
try_from_slice: 43.52ms
preparation_step::preparation::prepare: 143.00µs
air::preparation_step::preparation::make_exec_ctx: 31.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 44.00µs
runner::execute: 250.00ms
runner::farewell: 124.00ms
from_success_result: 124.00ms
populate_outcome_from_contexts: 124.00ms
air::farewell_step::outcome::CallRequestsRepr.serialize: 14.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 24.70ms
air_interpreter_data::interpreter_data::serialize: 99.40ms
signing_step::sign_produced_cids: 66.00µs
verification_step::verify: 65.50ms
verify: 65.30ms
canon-map-key-by-lens (8.08ms; 13.188 MiB, 13.188 MiB): benchmarking a map insert operation
air::runner::execute_air: 8.08ms
preparation_step::preparation::parse_data: 1.67ms
serialize: 12.00µs
try_from_slice: 1.59ms
preparation_step::preparation::prepare: 332.00µs
air::preparation_step::preparation::make_exec_ctx: 214.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 48.00µs
runner::execute: 2.21ms
runner::farewell: 1.29ms
from_success_result: 1.27ms
populate_outcome_from_contexts: 1.06ms
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 109.00µs
air_interpreter_data::interpreter_data::serialize: 653.00µs
signing_step::sign_produced_cids: 55.00µs
verification_step::verify: 2.44ms
verify: 2.24ms
canon-map-key-element-by-lens (8.02ms; 13.125 MiB, 13.125 MiB): benchmarking a map insert operation
air::runner::execute_air: 8.02ms
preparation_step::preparation::parse_data: 1.65ms
serialize: 12.00µs
try_from_slice: 1.58ms
preparation_step::preparation::prepare: 330.00µs
air::preparation_step::preparation::make_exec_ctx: 211.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 48.00µs
runner::execute: 2.19ms
runner::farewell: 1.25ms
from_success_result: 1.24ms
populate_outcome_from_contexts: 1.03ms
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 107.00µs
air_interpreter_data::interpreter_data::serialize: 641.00µs
signing_step::sign_produced_cids: 55.00µs
verification_step::verify: 2.45ms
verify: 2.26ms
canon-map-multiple-keys (7.67ms; 12.500 MiB, 12.500 MiB): benchmarking a map insert operation
air::runner::execute_air: 7.67ms
preparation_step::preparation::parse_data: 147.00µs
serialize: 12.00µs
try_from_slice: 77.00µs
preparation_step::preparation::prepare: 140.00µs
air::preparation_step::preparation::make_exec_ctx: 31.00µs
CallResultsRepr.deserialize: 8.00µs
air_parser::parser::air_parser::parse: 40.00µs
runner::execute: 5.85ms
runner::farewell: 1.18ms
from_success_result: 1.16ms
populate_outcome_from_contexts: 974.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 75.00µs
air_interpreter_data::interpreter_data::serialize: 635.00µs
signing_step::sign_produced_cids: 55.00µs
verification_step::verify: 212.00µs
verify: 20.00µs
canon-map-scalar-multiple-keys (3.19ms; 11.062 MiB, 11.062 MiB): benchmarking a map insert operation
air::runner::execute_air: 3.19ms
preparation_step::preparation::parse_data: 152.00µs
serialize: 12.00µs
try_from_slice: 81.00µs
preparation_step::preparation::prepare: 138.00µs
air::preparation_step::preparation::make_exec_ctx: 29.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 40.00µs
runner::execute: 2.25ms
runner::farewell: 297.00µs
from_success_result: 283.00µs
populate_outcome_from_contexts: 251.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 15.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 15.00µs
air_interpreter_data::interpreter_data::serialize: 35.00µs
signing_step::sign_produced_cids: 55.00µs
verification_step::verify: 214.00µs
verify: 21.00µs
canon-map-scalar-single-key (2.74ms; 11.000 MiB, 11.000 MiB): benchmarking a map insert operation
air::runner::execute_air: 2.74ms
preparation_step::preparation::parse_data: 138.00µs
serialize: 12.00µs
try_from_slice: 67.00µs
preparation_step::preparation::prepare: 134.00µs
air::preparation_step::preparation::make_exec_ctx: 29.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 37.00µs
runner::execute: 1.81ms
runner::farewell: 297.00µs
from_success_result: 283.00µs
populate_outcome_from_contexts: 239.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 15.00µs
air_interpreter_data::interpreter_data::serialize: 43.00µs
signing_step::sign_produced_cids: 56.00µs
verification_step::verify: 220.00µs
verify: 27.00µs
canon-map-single-key (6.47ms; 12.375 MiB, 12.375 MiB): benchmarking a map insert operation
air::runner::execute_air: 6.47ms
preparation_step::preparation::parse_data: 138.00µs
serialize: 12.00µs
try_from_slice: 69.00µs
preparation_step::preparation::prepare: 133.00µs
air::preparation_step::preparation::make_exec_ctx: 29.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 37.00µs
runner::execute: 4.64ms
runner::farewell: 1.19ms
from_success_result: 1.17ms
populate_outcome_from_contexts: 1.01ms
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 104.00µs
air_interpreter_data::interpreter_data::serialize: 677.00µs
signing_step::sign_produced_cids: 59.00µs
verification_step::verify: 224.00µs
verify: 27.00µs
dashboard (3.56ms; 10.750 MiB, 10.750 MiB): big dashboard test
air::runner::execute_air: 3.56ms
preparation_step::preparation::parse_data: 355.00µs
try_from_slice: 299.00µs
preparation_step::preparation::prepare: 210.00µs
air::preparation_step::preparation::make_exec_ctx: 47.00µs
CallResultsRepr.deserialize: 8.00µs
air_parser::parser::air_parser::parse: 95.00µs
runner::execute: 728.00µs
runner::farewell: 352.00µs
from_success_result: 337.00µs
populate_outcome_from_contexts: 295.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 17.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 30.00µs
air_interpreter_data::interpreter_data::serialize: 86.00µs
signing_step::sign_produced_cids: 65.00µs
verification_step::verify: 1.76ms
verify: 120.00µs
hybrid-100mb (779.00ms; 1.584 GiB, 1.584 GiB): Memory intensive benchmarking test with mixed workload
air::runner::execute_air: 779.00ms
preparation_step::preparation::parse_data: 42.10ms
serialize: 12.00µs
try_from_slice: 42.02ms
preparation_step::preparation::prepare: 145.00µs
air::preparation_step::preparation::make_exec_ctx: 31.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 44.00µs
runner::execute: 435.00ms
runner::farewell: 237.00ms
from_success_result: 237.00ms
populate_outcome_from_contexts: 237.00ms
air::farewell_step::outcome::CallRequestsRepr.serialize: 11.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 64.70ms
air_interpreter_data::interpreter_data::serialize: 172.00ms
signing_step::sign_produced_cids: 65.00µs
verification_step::verify: 65.10ms
verify: 64.90ms
lense-100mb (467.00ms; 1.069 GiB, 1.069 GiB): Memory intensive benchmarking test with lense
air::runner::execute_air: 467.00ms
preparation_step::preparation::parse_data: 42.10ms
serialize: 12.00µs
try_from_slice: 42.02ms
preparation_step::preparation::prepare: 144.00µs
air::preparation_step::preparation::make_exec_ctx: 31.00µs
CallResultsRepr.deserialize: 8.00µs
air_parser::parser::air_parser::parse: 41.00µs
runner::execute: 255.00ms
runner::farewell: 102.00ms
from_success_result: 102.00ms
populate_outcome_from_contexts: 102.00ms
air::farewell_step::outcome::CallRequestsRepr.serialize: 12.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 23.00ms
air_interpreter_data::interpreter_data::serialize: 78.40ms
signing_step::sign_produced_cids: 66.00µs
verification_step::verify: 67.20ms
verify: 67.00ms
long-data (2.25ms; 11.250 MiB, 11.250 MiB): Long data trace
air::runner::execute_air: 2.25ms
preparation_step::preparation::parse_data: 680.00µs
serialize: 12.00µs
try_from_slice: 609.00µs
preparation_step::preparation::prepare: 129.00µs
air::preparation_step::preparation::make_exec_ctx: 46.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 16.00µs
runner::execute: 6.00µs
runner::farewell: 291.00µs
from_success_result: 278.00µs
populate_outcome_from_contexts: 248.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 32.00µs
air_interpreter_data::interpreter_data::serialize: 66.00µs
signing_step::sign_produced_cids: 54.00µs
verification_step::verify: 1.01ms
verify: 271.00µs
map-100mb (450.00ms; 1.069 GiB, 1.069 GiB): Memory intensive benchmarking test with map 2 scalar
air::runner::execute_air: 450.00ms
preparation_step::preparation::parse_data: 41.20ms
serialize: 12.00µs
try_from_slice: 41.13ms
preparation_step::preparation::prepare: 137.00µs
air::preparation_step::preparation::make_exec_ctx: 30.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 39.00µs
runner::execute: 247.00ms
runner::farewell: 96.00ms
from_success_result: 96.00ms
populate_outcome_from_contexts: 96.00ms
air::farewell_step::outcome::CallRequestsRepr.serialize: 12.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 21.70ms
air_interpreter_data::interpreter_data::serialize: 74.10ms
signing_step::sign_produced_cids: 63.00µs
verification_step::verify: 65.30ms
verify: 65.10ms
multiple-cids10 (1.71ms; 10.562 MiB, 10.562 MiB): verifying multiple CIDs for single peer
air::runner::execute_air: 1.71ms
preparation_step::preparation::parse_data: 225.00µs
try_from_slice: 165.00µs
preparation_step::preparation::prepare: 150.00µs
air::preparation_step::preparation::make_exec_ctx: 43.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 37.00µs
runner::execute: 345.00µs
runner::farewell: 286.00µs
from_success_result: 272.00µs
populate_outcome_from_contexts: 225.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 11.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 23.00µs
air_interpreter_data::interpreter_data::serialize: 71.00µs
signing_step::sign_produced_cids: 54.00µs
verification_step::verify: 557.00µs
verify: 142.00µs
multiple-peers8 (6.39ms; 11.500 MiB, 11.500 MiB): verifying many CIDs for many peers
air::runner::execute_air: 6.39ms
preparation_step::preparation::parse_data: 766.00µs
try_from_slice: 707.00µs
preparation_step::preparation::prepare: 192.00µs
air::preparation_step::preparation::make_exec_ctx: 81.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 42.00µs
runner::execute: 2.15ms
runner::farewell: 677.00µs
from_success_result: 663.00µs
populate_outcome_from_contexts: 563.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 11.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 57.00µs
air_interpreter_data::interpreter_data::serialize: 305.00µs
signing_step::sign_produced_cids: 59.00µs
verification_step::verify: 2.45ms
verify: 617.00µs
multiple-sigs30 (14.40ms; 14.062 MiB, 14.062 MiB): signing multiple CIDs
air::runner::execute_air: 14.40ms
preparation_step::preparation::parse_data: 2.41ms
try_from_slice: 2.35ms
preparation_step::preparation::prepare: 293.00µs
air::preparation_step::preparation::make_exec_ctx: 179.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 42.00µs
runner::execute: 6.34ms
runner::farewell: 2.29ms
from_success_result: 2.27ms
populate_outcome_from_contexts: 2.12ms
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 285.00µs
air_interpreter_data::interpreter_data::serialize: 1.08ms
signing_step::sign_produced_cids: 423.00µs
verification_step::verify: 2.58ms
verify: 1.20ms
network-explore (1.80ms; 10.438 MiB, 10.438 MiB): 5 peers of network are discovered
air::runner::execute_air: 1.80ms
preparation_step::preparation::parse_data: 152.00µs
try_from_slice: 95.00µs
preparation_step::preparation::prepare: 162.00µs
air::preparation_step::preparation::make_exec_ctx: 34.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 59.00µs
runner::execute: 128.00µs
runner::farewell: 213.00µs
from_success_result: 199.00µs
populate_outcome_from_contexts: 163.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 11.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 13.00µs
air_interpreter_data::interpreter_data::serialize: 29.00µs
signing_step::sign_produced_cids: 56.00µs
verification_step::verify: 1.00ms
verify: 43.00µs
null (552.00µs; 10.438 MiB, 10.438 MiB): Empty data and null script
air::runner::execute_air: 552.00µs
preparation_step::preparation::parse_data: 95.00µs
serialize: 18.00µs
try_from_slice: 19.00µs
preparation_step::preparation::prepare: 118.00µs
air::preparation_step::preparation::make_exec_ctx: 28.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 14.00µs
runner::execute: 6.00µs
runner::farewell: 176.00µs
from_success_result: 163.00µs
populate_outcome_from_contexts: 133.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 12.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 14.00µs
air_interpreter_data::interpreter_data::serialize: 12.00µs
signing_step::sign_produced_cids: 54.00µs
verification_step::verify: 22.00µs
verify: 7.00µs
parser-10000-100 (17.20ms; 12.688 MiB, 12.688 MiB): long air script with lot of variable assignments
air::runner::execute_air: 17.20ms
preparation_step::preparation::parse_data: 95.00µs
serialize: 18.00µs
try_from_slice: 20.00µs
preparation_step::preparation::prepare: 16.20ms
air::preparation_step::preparation::make_exec_ctx: 32.00µs
CallResultsRepr.deserialize: 8.00µs
air_parser::parser::air_parser::parse: 16.10ms
runner::execute: 27.00µs
runner::farewell: 184.00µs
from_success_result: 170.00µs
populate_outcome_from_contexts: 138.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 15.00µs
air_interpreter_data::interpreter_data::serialize: 15.00µs
signing_step::sign_produced_cids: 59.00µs
verification_step::verify: 22.00µs
verify: 7.00µs
parser-air-100mb (3.87s; 592.500 MiB, 592.500 MiB): multiple calls parser benchmark
air::runner::execute_air: 3.87s
preparation_step::preparation::parse_data: 95.00µs
serialize: 18.00µs
try_from_slice: 22.00µs
preparation_step::preparation::prepare: 3.75s
air::preparation_step::preparation::make_exec_ctx: 37.00µs
CallResultsRepr.deserialize: 8.00µs
air_parser::parser::air_parser::parse: 3.75s
runner::execute: 30.00µs
runner::farewell: 202.00µs
from_success_result: 187.00µs
populate_outcome_from_contexts: 154.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 16.00µs
air_interpreter_data::interpreter_data::serialize: 21.00µs
signing_step::sign_produced_cids: 64.00µs
verification_step::verify: 23.00µs
verify: 7.00µs
parser-calls-10000-100 (14.70ms; 12.438 MiB, 12.438 MiB): multiple calls parser benchmark
air::runner::execute_air: 14.70ms
preparation_step::preparation::parse_data: 100.00µs
serialize: 18.00µs
try_from_slice: 23.00µs
preparation_step::preparation::prepare: 13.70ms
air::preparation_step::preparation::make_exec_ctx: 33.00µs
CallResultsRepr.deserialize: 8.00µs
air_parser::parser::air_parser::parse: 13.60ms
runner::execute: 26.00µs
runner::farewell: 189.00µs
from_success_result: 176.00µs
populate_outcome_from_contexts: 142.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 15.00µs
air_interpreter_data::interpreter_data::serialize: 15.00µs
signing_step::sign_produced_cids: 59.00µs
verification_step::verify: 24.00µs
verify: 8.00µs
populate-map-multiple-keys (2.77ms; 10.938 MiB, 10.938 MiB): benchmarking a map insert operation
air::runner::execute_air: 2.77ms
preparation_step::preparation::parse_data: 117.00µs
serialize: 12.00µs
try_from_slice: 49.00µs
preparation_step::preparation::prepare: 136.00µs
air::preparation_step::preparation::make_exec_ctx: 28.00µs
CallResultsRepr.deserialize: 7.00µs
air_parser::parser::air_parser::parse: 40.00µs
runner::execute: 1.93ms
runner::farewell: 238.00µs
from_success_result: 224.00µs
populate_outcome_from_contexts: 193.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 15.00µs
air_interpreter_data::interpreter_data::serialize: 45.00µs
signing_step::sign_produced_cids: 59.00µs
verification_step::verify: 208.00µs
verify: 18.00µs
populate-map-single-key (2.42ms; 10.875 MiB, 10.875 MiB): benchmarking a map insert operation
air::runner::execute_air: 2.42ms
preparation_step::preparation::parse_data: 117.00µs
serialize: 12.00µs
try_from_slice: 48.00µs
preparation_step::preparation::prepare: 139.00µs
air::preparation_step::preparation::make_exec_ctx: 31.00µs
CallResultsRepr.deserialize: 8.00µs
air_parser::parser::air_parser::parse: 40.00µs
runner::execute: 1.55ms
runner::farewell: 241.00µs
from_success_result: 227.00µs
populate_outcome_from_contexts: 185.00µs
air::farewell_step::outcome::CallRequestsRepr.serialize: 10.00µs
air::farewell_step::outcome::InterpreterDataEnv::serialize: 15.00µs
air_interpreter_data::interpreter_data::serialize: 41.00µs
signing_step::sign_produced_cids: 56.00µs
verification_step::verify: 220.00µs
verify: 27.00µs
Machine c1f3ea5950db0a10b44da931c25774d64ab25084f47d504f72f311e694550ff1:
Platform: macOS-12.0.1-x86_64-i386-64bit
Timestamp: 2023-02-13 13:19:34.106863+00:00