Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lazy pages optimization #1133

Merged
merged 6 commits into from
Jul 7, 2022
Merged

lazy pages optimization #1133

merged 6 commits into from
Jul 7, 2022

Conversation

grishasobol
Copy link
Member

@grishasobol grishasobol commented Jul 1, 2022

in order to optimise lazy pages work - move logic which calc keys for pages in signal handler.
Also completely remove lazy_pages set because it can be very costly to support it when memory size is big

Perf

I have run gr_read benchmarks to test perf increase:

perf record --all-user --call-graph=dwarf --freq 997 ./target/release/gear-node benchmark pallet --chain=dev --steps=50 --repeat=100 --pallet=pallet_gear --execution=native --extrinsic="gr_read"

gear_core_processor::executor::prepare_memory (where lazy pages init info is called) takes

master       :    24.9% from all samples
this branch  :    0.01% from all samples

time for gr_read:

master       :    42.93 µs
this branch  :    32.65 µs

time for gr_reply_commit:

master       :    68.2 µs
this branch  :    49.92 µs

Testing

Run node with this patch over all test-net chain - all OK

Important

This patch requires node binary update after runtime update.

@grishasobol grishasobol requested a review from ukint-vs July 1, 2022 15:47
@grishasobol grishasobol force-pushed the gsobol-lazy-pages-optim branch from f000e59 to ac43d26 Compare July 1, 2022 16:15
@github-actions
Copy link
Contributor

github-actions bot commented Jul 1, 2022

ac43d26
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 89 373 000 000; +3354.70% ‼️ 2 587 000 000 3 381 980 000 (2 488 000 000; 2 681 000 000) 2 296 000 000 83 021 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 9 000 000; +80.00% ❗ 5 000 000 8 030 000 (4 000 000; 7 500 000) 3 000 000 51 000 000
schedule::test::print_test_schedule 11 000 000; +83.33% ❗ 6 000 000 8 530 000 (5 000 000; 10 000 000) 3 000 000 43 000 000
tests::call_forbidden_function 54 000 000; +440.00% ‼️ 10 000 000 12 430 000 (8 000 000; 15 000 000) 6 000 000 34 000 000
tests::cascading_messages_with_value_do_not_overcharge 113 000 000; +51.68% ❗ 74 500 000 76 970 000 (66 000 000; 83 500 000) 58 000 000 126 000 000
tests::defer_program_initialization 89 000 000; +217.86% ‼️ 28 000 000 31 450 000 (24 000 000; 35 000 000) 20 000 000 82 000 000
tests::distributor_distribute 52 000 000; +126.09% ❗ 23 000 000 25 260 000 (18 000 000; 28 000 000) 14 000 000 86 000 000
tests::distributor_initialize 44 000 000; +175.00% ❗ 16 000 000 19 840 000 (13 000 000; 23 500 000) 9 000 000 60 000 000
tests::events_logging_works 69 000 000; +392.86% ‼️ 14 000 000 18 290 000 (11 000 000; 21 500 000) 7 000 000 64 000 000
tests::exit_handle 42 000 000; +200.00% ❗ 14 000 000 17 490 000 (9 000 000; 24 000 000) 6 000 000 51 000 000
tests::exit_init 52 000 000; +160.00% ❗ 20 000 000 24 590 000 (16 000 000; 29 000 000) 11 000 000 64 000 000
tests::gas_spent_precalculated 67 000 000; +378.57% ❗ 14 000 000 19 080 000 (10 000 000; 24 000 000) 6 000 000 70 000 000
tests::gas_spent_vs_balance 87 000 000; +77.55% ❗ 49 000 000 49 940 000 (39 000 000; 56 000 000) 31 000 000 106 000 000
tests::init_message_logging_works 81 000 000; +478.57% ‼️ 14 000 000 19 390 000 (10 500 000; 22 000 000) 6 000 000 81 000 000
tests::init_wait_reply_exit_cleaned_storage 36 000 000; +5.88% ✔️ 34 000 000 37 400 000 (28 000 000; 43 500 000) 21 000 000 77 000 000
tests::lazy_pages 69 000 000; +283.33% ❗ 18 000 000 22 960 000 (10 000 000; 28 000 000) 6 000 000 89 000 000
tests::mailbox_threshold_works 32 000 000; +0.00% ✔️ 32 000 000 36 730 000 (27 000 000; 42 500 000) 19 000 000 79 000 000
tests::mailbox_works 37 000 000; +131.25% ❗ 16 000 000 20 590 000 (9 000 000; 29 000 000) 7 000 000 60 000 000
tests::memory_access_cases 42 000 000; +147.06% ❗ 17 000 000 22 190 000 (11 000 000; 30 000 000) 7 000 000 75 000 000
tests::messages_processing_works 85 000 000; +347.37% ‼️ 19 000 000 23 390 000 (10 500 000; 34 000 000) 6 000 000 68 000 000
tests::messages_to_paused_program_skipped 23 000 000; -4.17% ✔️ 24 000 000 26 990 000 (16 000 000; 34 000 000) 12 000 000 70 000 000
tests::messages_to_uninitialized_program_wait 40 000 000; +70.21% ❗ 23 500 000 28 120 000 (16 000 000; 35 000 000) 12 000 000 79 000 000
tests::no_redundant_gas_value_after_exiting 57 000 000; +171.43% ❗ 21 000 000 25 070 000 (12 000 000; 35 000 000) 7 000 000 75 000 000
tests::paused_program_keeps_id 32 000 000; +4.92% ✔️ 30 500 000 33 880 000 (21 000 000; 42 500 000) 14 000 000 84 000 000
tests::program_lifecycle_works 33 000 000; +53.49% ✔️ 21 500 000 26 010 000 (13 000 000; 36 000 000) 7 000 000 96 000 000
tests::program_messages_to_paused_program_skipped 63 000 000; +57.50% ❗ 40 000 000 43 640 000 (30 000 000; 54 000 000) 22 000 000 101 000 000
tests::replies_to_paused_program_skipped 167 000 000; +518.52% ‼️ 27 000 000 32 340 000 (18 000 000; 44 000 000) 11 000 000 95 000 000
tests::restrict_start_section 56 000 000; +160.47% ❗ 21 500 000 24 640 000 (10 500 000; 32 000 000) 6 000 000 74 000 000
tests::resume_program_works 95 000 000; +143.59% ❗ 39 000 000 43 180 000 (31 000 000; 52 000 000) 20 000 000 101 000 000
tests::send_message_expected_failure 50 000 000; +127.27% ❗ 22 000 000 29 060 000 (12 000 000; 45 000 000) 7 000 000 91 000 000
tests::send_message_works 40 000 000; +86.05% ❗ 21 500 000 25 330 000 (11 000 000; 36 000 000) 5 000 000 79 000 000
tests::send_reply_failure_to_claim_from_mailbox 49 000 000; +96.00% ❗ 25 000 000 28 080 000 (13 500 000; 39 000 000) 5 000 000 94 000 000
tests::send_reply_value_claiming_works 22 000 000; -18.52% ✔️ 27 000 000 30 340 000 (16 500 000; 42 000 000) 7 000 000 83 000 000
tests::send_reply_works 21 000 000; -31.15% ✔️ 30 500 000 30 750 000 (18 000 000; 40 000 000) 5 000 000 69 000 000
tests::spent_gas_to_reward_block_author_works 50 000 000; +56.25% ❗ 32 000 000 32 530 000 (18 000 000; 42 000 000) 5 000 000 97 000 000
tests::submit_program_expected_failure 32 000 000; +3.23% ✔️ 31 000 000 32 450 000 (17 000 000; 44 000 000) 6 000 000 95 000 000
tests::submit_program_fails_on_duplicate_id 39 000 000; +30.00% ✔️ 30 000 000 33 100 000 (19 000 000; 44 000 000) 5 000 000 102 000 000
tests::test_async_messages 381 000 000; +76.39% ‼️ 216 000 000 216 310 000 (204 500 000; 229 000 000) 177 000 000 265 000 000
tests::test_code_is_not_reset_within_program_submission 15 000 000; -47.37% ✔️ 28 500 000 28 810 000 (14 500 000; 42 000 000) 5 000 000 74 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 39 000 000; +21.88% ✔️ 32 000 000 33 140 000 (17 500 000; 45 000 000) 6 000 000 92 000 000
tests::test_code_submission_pass 39 000 000; +23.81% ✔️ 31 500 000 35 360 000 (18 000 000; 50 000 000) 6 000 000 98 000 000
tests::test_create_program_duplicate 63 000 000; +20.00% ✔️ 52 500 000 53 840 000 (42 500 000; 64 000 000) 27 000 000 113 000 000
tests::test_create_program_duplicate_in_one_execution 150 000 000; +265.85% ‼️ 41 000 000 42 670 000 (30 500 000; 52 000 000) 18 000 000 97 000 000
tests::test_create_program_miscellaneous 160 000 000; +193.58% ‼️ 54 500 000 56 800 000 (42 000 000; 69 500 000) 30 000 000 103 000 000
tests::test_create_program_no_code_hash 159 000 000; +80.68% ‼️ 88 000 000 89 560 000 (77 500 000; 98 000 000) 57 000 000 143 000 000
tests::test_create_program_simple 152 000 000; +159.83% ‼️ 58 500 000 59 290 000 (47 000 000; 70 000 000) 35 000 000 98 000 000
tests::test_create_program_with_exceeding_value 52 000 000; +31.65% ✔️ 39 500 000 39 970 000 (25 000 000; 55 500 000) 12 000 000 82 000 000
tests::test_create_program_with_value_lt_ed 28 000 000; -30.00% ✔️ 40 000 000 43 310 000 (30 000 000; 57 500 000) 17 000 000 85 000 000
tests::test_create_program_without_gas_works 138 000 000; +236.59% ‼️ 41 000 000 41 570 000 (25 000 000; 52 500 000) 12 000 000 106 000 000
tests::test_message_processing_for_non_existing_destination 49 000 000; +32.43% ❗ 37 000 000 38 510 000 (24 000 000; 49 000 000) 8 000 000 86 000 000
tests::test_reply_to_terminated_program 39 000 000; -6.02% ✔️ 41 500 000 41 750 000 (27 500 000; 55 500 000) 13 000 000 92 000 000
tests::test_same_code_submission_fails 131 000 000; +263.89% ‼️ 36 000 000 34 580 000 (21 500 000; 46 000 000) 6 000 000 70 000 000
tests::test_two_contracts_composition_works 153 000 000; +112.50% ‼️ 72 000 000 72 530 000 (62 000 000; 81 500 000) 40 000 000 106 000 000
tests::uninitialized_program_should_accept_replies 231 000 000; +381.25% ‼️ 48 000 000 48 350 000 (34 500 000; 59 000 000) 21 000 000 95 000 000
tests::unstoppable_block_execution_works 130 000 000; +256.16% ‼️ 36 500 000 39 880 000 (27 500 000; 51 000 000) 11 000 000 97 000 000
tests::unused_gas_released_back_works 29 000 000; -21.62% ✔️ 37 000 000 40 660 000 (29 500 000; 51 500 000) 9 000 000 85 000 000
tests::wake_messages_after_program_inited 285 000 000; +277.48% ‼️ 75 500 000 78 120 000 (66 000 000; 87 000 000) 54 000 000 119 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 126 000 000; +265.22% ‼️ 34 500 000 35 650 000 (22 000 000; 46 000 000) 5 000 000 87 000 000
tests::check_changed_pages_in_storage 24 000 000; -35.14% ✔️ 37 000 000 40 390 000 (26 500 000; 52 500 000) 9 000 000 99 000 000
tests::debug_mode_works 128 000 000; +216.05% ‼️ 40 500 000 43 460 000 (30 000 000; 55 500 000) 8 000 000 104 000 000

name = pallet-gear-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 53 000 000; +76.67% ❗ 30 000 000 33 250 000 (21 000 000; 42 500 000) 3 000 000 76 000 000
tests::all_keys_are_cleared 26 000 000; -25.71% ✔️ 35 000 000 38 480 000 (22 000 000; 50 000 000) 5 000 000 79 000 000
tests::can_cut_nodes 148 000 000; +311.11% ‼️ 36 000 000 38 930 000 (25 500 000; 50 000 000) 5 000 000 88 000 000
tests::gas_free_after_consumed 42 000 000; +25.37% ✔️ 33 500 000 37 570 000 (24 000 000; 51 000 000) 5 000 000 98 000 000
tests::limit_vs_origin 39 000 000; +8.33% ✔️ 36 000 000 36 520 000 (22 500 000; 46 500 000) 6 000 000 97 000 000
tests::long_chain 34 000 000; -2.86% ✔️ 35 000 000 38 250 000 (24 000 000; 52 000 000) 4 000 000 92 000 000
tests::simple_value_tree 100 000 000; +170.27% ‼️ 37 000 000 37 790 000 (24 500 000; 49 000 000) 4 000 000 92 000 000
tests::split_with_no_value 204 000 000; +482.86% ‼️ 35 000 000 36 180 000 (23 000 000; 49 000 000) 4 000 000 89 000 000
tests::splits_fail 67 000 000; +86.11% ❗ 36 000 000 38 460 000 (27 000 000; 49 000 000) 11 000 000 92 000 000
tests::sub_nodes_tree 116 000 000; +262.50% ‼️ 32 000 000 34 420 000 (23 000 000; 46 000 000) 5 000 000 100 000 000
tests::sub_nodes_tree_with_spends 99 000 000; +175.00% ‼️ 36 000 000 36 830 000 (25 000 000; 47 500 000) 5 000 000 89 000 000
tests::subtree_gas_limit_remains_intact 188 000 000; +506.45% ‼️ 31 000 000 34 960 000 (21 000 000; 45 500 000) 5 000 000 90 000 000
tests::test_consume_procedure 238 000 000; +580.00% ‼️ 35 000 000 36 290 000 (25 000 000; 45 500 000) 7 000 000 78 000 000
tests::value_tree_known_errors 141 000 000; +327.27% ‼️ 33 000 000 35 330 000 (23 000 000; 45 000 000) 5 000 000 107 000 000
tests::value_tree_with_all_kinds_of_nodes 163 000 000; +434.43% ‼️ 30 500 000 32 760 000 (21 000 000; 43 000 000) 5 000 000 82 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 253 000 000; +803.57% ‼️ 28 000 000 30 250 000 (16 000 000; 41 000 000) 4 000 000 84 000 000
tests::dequeued_impl_works_manually 232 000 000; +518.67% ‼️ 37 500 000 36 230 000 (24 500 000; 47 000 000) 5 000 000 78 000 000
tests::queue_processing_impl_works_manually 208 000 000; +560.32% ‼️ 31 500 000 35 190 000 (22 000 000; 46 000 000) 5 000 000 77 000 000
tests::queue_works 234 000 000; +620.00% ‼️ 32 500 000 33 700 000 (23 000 000; 42 000 000) 4 000 000 75 000 000
tests::sent_impl_works 194 000 000; +487.88% ‼️ 33 000 000 34 500 000 (23 000 000; 45 500 000) 6 000 000 76 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 195 000 000; +550.00% ‼️ 30 000 000 31 150 000 (20 000 000; 40 000 000) 4 000 000 74 000 000
tests::custom_fee_multiplier_updated_per_block 223 000 000; +586.15% ‼️ 32 500 000 32 670 000 (20 500 000; 42 500 000) 6 000 000 66 000 000
tests::fee_rounding_error_bounded_by_multiplier 195 000 000; +509.38% ‼️ 32 000 000 34 050 000 (22 000 000; 44 500 000) 6 000 000 74 000 000
tests::mq_size_affecting_fee_works 193 000 000; +451.43% ‼️ 35 000 000 34 810 000 (26 000 000; 43 000 000) 5 000 000 76 000 000
tests::mq_size_not_affecting_fee_works 186 000 000; +455.22% ‼️ 33 500 000 33 970 000 (23 000 000; 42 500 000) 5 000 000 82 000 000
tests::query_info_and_fee_details_work 194 000 000; +546.67% ‼️ 30 000 000 31 710 000 (22 500 000; 40 500 000) 5 000 000 79 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 57 000 000; +107.27% ❗ 27 500 000 28 240 000 (17 500 000; 38 000 000) 3 000 000 70 000 000
tests::pause_program_twice_fails 91 000 000; +213.79% ‼️ 29 000 000 30 510 000 (19 000 000; 40 000 000) 5 000 000 66 000 000
tests::pause_program_works 57 000 000; +67.65% ❗ 34 000 000 35 700 000 (27 500 000; 42 500 000) 14 000 000 69 000 000
tests::pause_terminated_program_fails 101 000 000; +225.81% ‼️ 31 000 000 31 590 000 (21 000 000; 40 500 000) 5 000 000 71 000 000
tests::pause_uninitialized_program_works 73 000 000; +128.12% ‼️ 32 000 000 32 350 000 (22 500 000; 39 000 000) 13 000 000 69 000 000
tests::resume_program_twice_fails 100 000 000; +177.78% ‼️ 36 000 000 37 710 000 (28 000 000; 45 000 000) 18 000 000 72 000 000
tests::resume_program_wrong_list_fails 65 000 000; +96.97% ❗ 33 000 000 34 590 000 (24 500 000; 41 000 000) 13 000 000 69 000 000
tests::resume_program_wrong_memory_fails 55 000 000; +66.67% ❗ 33 000 000 33 930 000 (26 000 000; 40 000 000) 14 000 000 65 000 000
tests::resume_uninitialized_program_works 64 000 000; +100.00% ❗ 32 000 000 34 560 000 (26 000 000; 43 000 000) 16 000 000 68 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 64 000 000; +161.22% ❗ 24 500 000 26 660 000 (17 500 000; 36 000 000) 4 000 000 68 000 000
tests::dust_discarded_with_noop 131 000 000; +394.34% ‼️ 26 500 000 29 140 000 (20 000 000; 37 000 000) 11 000 000 63 000 000
tests::external_submitter_gets_rewarded 138 000 000; +401.82% ‼️ 27 500 000 28 280 000 (19 000 000; 37 000 000) 6 000 000 66 000 000
tests::gas_properly_handled_for_trap_replies 75 000 000; +188.46% ‼️ 26 000 000 27 770 000 (19 000 000; 35 000 000) 10 000 000 64 000 000
tests::ocw_double_charge 91 000 000; +264.00% ‼️ 25 000 000 26 370 000 (18 000 000; 34 000 000) 7 000 000 57 000 000
tests::ocw_interval_maintained 71 000 000; +162.96% ‼️ 27 000 000 26 850 000 (19 000 000; 33 000 000) 6 000 000 57 000 000
tests::ocw_interval_stretches_for_large_wait_list 171 000 000; +612.50% ‼️ 24 000 000 25 640 000 (18 000 000; 32 000 000) 7 000 000 59 000 000
tests::ocw_overlapping_prevented 68 000 000; +195.65% ‼️ 23 000 000 23 630 000 (15 500 000; 29 000 000) 5 000 000 57 000 000
tests::rent_charge_works 94 000 000; +308.70% ‼️ 23 000 000 24 550 000 (16 000 000; 31 000 000) 8 000 000 59 000 000
tests::trap_reply_message_is_sent 68 000 000; +189.36% ‼️ 23 500 000 22 950 000 (14 000 000; 30 000 000) 7 000 000 57 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 130 105 353 228; +89.37% ‼️ 68 703 307 306 68 719 051 768 (68 582 585 033; 68 865 624 248) 68 270 998 404 69 256 553 763

name = Async RwLock

name current median average lower/upper quartile min max
check readers 787 079 211; +844.35% ‼️ 83 346 451 83 800 127 (80 350 895; 85 862 810) 73 222 442 101 342 757
forever lock 927 002 662; +955.01% ‼️ 87 866 574 89 623 739 (85 501 160; 93 530 486) 79 934 713 109 317 136
read while writing 1 713 246 894; +1547.60% ‼️ 103 984 134 107 521 764 (100 404 949; 113 774 775) 90 277 383 140 579 503
rwlock wide 2 547 194 990; +1933.23% ‼️ 125 278 217 128 432 420 (116 058 525; 140 544 372) 108 790 957 166 761 677
write while reading 1 783 690 007; +1548.84% ‼️ 108 178 316 110 289 080 (101 788 141; 115 900 375) 92 254 702 140 884 951

name = Async init

name current median average lower/upper quartile min max
approved pong 11 146 569 751; +7.14% ‼️ 10 403 736 942 10 399 366 973 (10 348 293 207; 10 454 136 201) 10 226 116 990 10 536 032 310

name = Async-await

name current median average lower/upper quartile min max
normal 622 869 027; +827.42% ‼️ 67 161 231 67 578 126 (63 607 709; 71 711 426) 52 422 298 79 788 848
panic 692 006 810; +896.60% ‼️ 69 436 436 69 957 545 (66 154 695; 73 853 661) 56 707 540 81 230 325

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 980 876 481; +986.40% ‼️ 90 287 192 91 309 321 (86 736 910; 93 953 642) 83 289 192 111 761 989

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; eve doesn't answer, alice replies with incorrect payload 8 541 736 236; +74.64% ‼️ 4 890 927 200 4 889 496 727 (4 868 184 546; 4 912 321 681) 4 809 446 734 4 968 872 082
2 of 3; no replies 6 376 097 868; +32.38% ‼️ 4 816 411 116 4 817 094 829 (4 792 769 937; 4 842 945 270) 4 706 258 811 4 884 839 841
Single signatory & zero threshold 8 538 608 418; +75.01% ‼️ 4 878 932 516 4 876 729 317 (4 852 284 601; 4 899 721 144) 4 791 608 059 4 975 859 370
Three signatories; Bob replies with incorrect signature 5 912 620 395; +20.85% ‼️ 4 892 597 517 4 891 877 238 (4 870 404 347; 4 908 937 816) 4 803 097 140 5 017 082 259
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 6 250 682 559; +27.66% ‼️ 4 896 488 708 4 894 802 172 (4 876 530 631; 4 916 626 435) 4 831 567 309 4 994 044 300

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 3 189 983 054; +31.65% ‼️ 2 423 055 956 2 425 572 537 (2 407 949 066; 2 444 820 930) 2 376 565 551 2 489 754 524
correct signature but for another message 3 473 576 989; +40.15% ‼️ 2 478 394 262 2 481 711 439 (2 459 022 695; 2 503 297 781) 2 406 946 278 2 591 078 473
no reply 3 772 494 601; +56.02% ‼️ 2 417 909 109 2 415 309 536 (2 399 089 454; 2 434 147 670) 2 350 220 380 2 463 030 171
signed message 4 047 380 889; +62.56% ‼️ 2 489 851 943 2 489 520 324 (2 471 016 432; 2 509 449 093) 2 391 760 345 2 545 201 087

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 806 338 428; +981.12% ‼️ 74 583 401 74 832 049 (70 370 169; 79 130 489) 61 563 540 88 788 579

name = Decoder

name current median average lower/upper quartile min max
decoder 585 966 037; +762.22% ‼️ 67 960 545 68 247 830 (66 037 180; 70 690 525) 57 589 287 78 140 128

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 3 092 088 928; +2035.63% ‼️ 144 786 131 152 258 125 (138 138 676; 167 096 717) 130 123 688 196 891 167
join 3 104 282 420; +1990.42% ‼️ 148 500 524 152 516 636 (139 338 918; 162 347 906) 118 912 487 196 125 341
select 3 015 002 054; +2013.75% ‼️ 142 637 888 146 791 701 (134 466 297; 156 548 372) 125 714 392 187 871 467

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 2 738 763 030; +1965.81% ‼️ 132 575 806 136 155 079 (123 668 513; 149 351 834) 112 625 695 176 737 442

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 388 735 150; +450.71% ‼️ 70 588 580 70 977 751 (66 214 461; 75 813 367) 56 810 840 86 692 894

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 743 039 745; +852.51% ‼️ 78 008 912 78 358 722 (75 753 164; 80 910 125) 71 680 671 89 454 650

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 10 182 552 267; +5.65% ‼️ 9 638 246 865 9 637 044 988 (9 603 030 066; 9 678 965 525) 9 503 018 689 9 755 377 550

name = Multiping

name current median average lower/upper quartile min max
multiping 599 647 676; +844.35% ‼️ 63 498 652 63 386 628 (59 455 446; 67 330 456) 46 188 063 80 882 627

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 299 474 094; +395.20% ‼️ 60 475 614 61 077 553 (57 306 687; 64 620 532) 50 839 529 71 931 785
ping-pong wgas 706 597 967; +899.84% ‼️ 70 670 805 70 327 508 (65 378 371; 74 691 880) 53 564 148 84 833 559

name = Program_id test

name current median average lower/upper quartile min max
program_id 367 254 180; +535.66% ‼️ 57 775 691 58 597 162 (54 261 492; 62 088 233) 48 923 576 72 926 005

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 694 454 977; +905.87% ‼️ 69 040 293 69 533 843 (65 442 355; 73 515 427) 57 264 974 83 176 517
state-saving 723 569 748; +963.43% ‼️ 68 041 007 67 997 489 (63 008 103; 71 746 982) 55 183 133 84 000 507

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 406 496 990; +517.72% ‼️ 65 805 811 65 435 231 (61 481 660; 69 025 270) 50 865 417 77 647 956
Try to re-init existing program 809 532 236; +958.83% ‼️ 76 455 181 76 497 786 (73 600 052; 80 750 766) 57 590 873 88 585 880

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 230 410 820; +411.20% ‼️ 45 072 148 46 083 596 (41 988 164; 48 656 239) 37 489 486 63 446 544

name = Wait test

name current median average lower/upper quartile min max
wait 811 244 441; +1022.71% ‼️ 72 257 603 73 208 476 (68 094 085; 77 005 681) 60 183 447 93 876 047

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 835 100 092; +672.91% ‼️ 108 046 247 109 910 114 (102 286 678; 115 294 967) 96 307 665 141 293 853

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 815 120 084; +978.02% ‼️ 75 612 665 75 673 930 (72 534 845; 78 835 272) 63 326 620 89 938 228

name = guestbook test

name current median average lower/upper quartile min max
guestbook 5 172 154 289; +9.34% ‼️ 4 730 243 982 4 722 777 751 (4 694 005 555; 4 751 172 505) 4 614 760 614 4 806 330 721

name = gui test

name current median average lower/upper quartile min max
gui 6 894 679 340; +8.00% ‼️ 6 383 794 077 6 390 341 791 (6 359 313 149; 6 421 356 802) 6 300 573 273 6 479 539 355
6f100f7
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 42 174 000 000; +3362.56% ❗ 1 218 000 000 2 036 510 000 (1 201 000 000; 1 235 000 000) 1 138 000 000 83 169 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 22 000 000; +450.00% ‼️ 4 000 000 4 210 000 (3 000 000; 4 000 000) 3 000 000 18 000 000
schedule::test::print_test_schedule 27 000 000; +575.00% ❗ 4 000 000 5 720 000 (4 000 000; 5 000 000) 2 000 000 112 000 000
tests::call_forbidden_function 165 000 000; +1962.50% ‼️ 8 000 000 8 020 000 (7 000 000; 9 000 000) 5 000 000 19 000 000
tests::cascading_messages_with_value_do_not_overcharge 279 000 000; +332.56% ‼️ 64 500 000 66 820 000 (60 000 000; 72 000 000) 54 000 000 133 000 000
tests::defer_program_initialization 201 000 000; +737.50% ‼️ 24 000 000 25 330 000 (22 000 000; 27 000 000) 20 000 000 48 000 000
tests::distributor_distribute 71 000 000; +317.65% ❗ 17 000 000 19 590 000 (16 000 000; 21 000 000) 13 000 000 79 000 000
tests::distributor_initialize 63 000 000; +425.00% ❗ 12 000 000 14 170 000 (11 000 000; 14 500 000) 9 000 000 84 000 000
tests::events_logging_works 52 000 000; +420.00% ❗ 10 000 000 13 870 000 (9 000 000; 14 500 000) 7 000 000 72 000 000
tests::exit_handle 92 000 000; +922.22% ‼️ 9 000 000 13 400 000 (8 000 000; 14 500 000) 6 000 000 87 000 000
tests::exit_init 42 000 000; +162.50% ❗ 16 000 000 20 010 000 (14 000 000; 21 000 000) 11 000 000 73 000 000
tests::gas_spent_precalculated 60 000 000; +500.00% ‼️ 10 000 000 14 480 000 (9 000 000; 17 500 000) 6 000 000 51 000 000
tests::gas_spent_vs_balance 146 000 000; +274.36% ‼️ 39 000 000 42 690 000 (34 500 000; 47 000 000) 29 000 000 80 000 000
tests::init_message_logging_works 93 000 000; +830.00% ‼️ 10 000 000 13 700 000 (8 000 000; 15 000 000) 6 000 000 65 000 000
tests::init_wait_reply_exit_cleaned_storage 45 000 000; +66.67% ❗ 27 000 000 31 140 000 (24 000 000; 36 500 000) 19 000 000 79 000 000
tests::lazy_pages 81 000 000; +636.36% ‼️ 11 000 000 15 810 000 (8 000 000; 20 000 000) 6 000 000 66 000 000
tests::mailbox_threshold_works 127 000 000; +370.37% ‼️ 27 000 000 31 770 000 (23 000 000; 36 000 000) 18 000 000 81 000 000
tests::mailbox_works 113 000 000; +927.27% ‼️ 11 000 000 17 110 000 (8 500 000; 20 000 000) 6 000 000 72 000 000
tests::memory_access_cases 31 000 000; +158.33% ❗ 12 000 000 17 900 000 (9 000 000; 23 500 000) 5 000 000 69 000 000
tests::messages_processing_works 22 000 000; +76.00% ✔️ 12 500 000 17 980 000 (9 000 000; 24 000 000) 5 000 000 84 000 000
tests::messages_to_paused_program_skipped 73 000 000; +284.21% ‼️ 19 000 000 23 840 000 (15 000 000; 30 000 000) 10 000 000 63 000 000
tests::messages_to_uninitialized_program_wait 71 000 000; +255.00% ‼️ 20 000 000 25 610 000 (15 000 000; 31 500 000) 10 000 000 68 000 000
tests::no_redundant_gas_value_after_exiting 42 000 000; +200.00% ❗ 14 000 000 20 280 000 (9 000 000; 25 000 000) 6 000 000 94 000 000
tests::paused_program_keeps_id 97 000 000; +304.17% ❗ 24 000 000 29 320 000 (17 500 000; 36 500 000) 13 000 000 106 000 000
tests::program_lifecycle_works 128 000 000; +924.00% ‼️ 12 500 000 20 410 000 (8 000 000; 26 000 000) 5 000 000 81 000 000
tests::program_messages_to_paused_program_skipped 70 000 000; +100.00% ❗ 35 000 000 39 480 000 (28 500 000; 49 000 000) 21 000 000 87 000 000
tests::replies_to_paused_program_skipped 62 000 000; +210.00% ❗ 20 000 000 26 260 000 (15 000 000; 31 500 000) 11 000 000 92 000 000
tests::restrict_start_section 35 000 000; +159.26% ❗ 13 500 000 20 210 000 (7 000 000; 27 000 000) 4 000 000 94 000 000
tests::resume_program_works 190 000 000; +467.16% ‼️ 33 500 000 38 580 000 (25 500 000; 48 500 000) 20 000 000 83 000 000
tests::send_message_expected_failure 21 000 000; +27.27% ✔️ 16 500 000 22 360 000 (8 500 000; 32 000 000) 5 000 000 75 000 000
tests::send_message_works 47 000 000; +224.14% ❗ 14 500 000 23 310 000 (9 000 000; 28 500 000) 6 000 000 114 000 000
tests::send_reply_failure_to_claim_from_mailbox 50 000 000; +150.00% ❗ 20 000 000 25 320 000 (9 000 000; 37 500 000) 6 000 000 101 000 000
tests::send_reply_value_claiming_works 55 000 000; +189.47% ❗ 19 000 000 25 990 000 (11 000 000; 36 000 000) 7 000 000 100 000 000
tests::send_reply_works 49 000 000; +139.02% ❗ 20 500 000 25 810 000 (10 000 000; 37 500 000) 6 000 000 95 000 000
tests::spent_gas_to_reward_block_author_works 127 000 000; +719.35% ‼️ 15 500 000 25 580 000 (9 500 000; 37 500 000) 5 000 000 102 000 000
tests::submit_program_expected_failure 50 000 000; +156.41% ❗ 19 500 000 24 470 000 (8 000 000; 37 500 000) 4 000 000 75 000 000
tests::submit_program_fails_on_duplicate_id 40 000 000; +70.21% ✔️ 23 500 000 29 070 000 (10 500 000; 41 000 000) 6 000 000 121 000 000
tests::test_async_messages 560 000 000; +171.84% ‼️ 206 000 000 206 850 000 (192 500 000; 224 000 000) 172 000 000 249 000 000
tests::test_code_is_not_reset_within_program_submission 13 000 000; -48.00% ✔️ 25 000 000 27 400 000 (10 000 000; 41 500 000) 4 000 000 106 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 32 000 000; +45.45% ✔️ 22 000 000 27 820 000 (9 500 000; 39 500 000) 4 000 000 83 000 000
tests::test_code_submission_pass 55 000 000; +103.70% ❗ 27 000 000 29 180 000 (9 000 000; 43 000 000) 5 000 000 102 000 000
tests::test_create_program_duplicate 53 000 000; +17.78% ✔️ 45 000 000 49 080 000 (35 000 000; 63 000 000) 24 000 000 113 000 000
tests::test_create_program_duplicate_in_one_execution 47 000 000; +23.68% ✔️ 38 000 000 39 600 000 (26 000 000; 50 000 000) 16 000 000 99 000 000
tests::test_create_program_miscellaneous 73 000 000; +52.08% ❗ 48 000 000 52 330 000 (40 000 000; 61 500 000) 25 000 000 113 000 000
tests::test_create_program_no_code_hash 132 000 000; +58.08% ❗ 83 500 000 84 740 000 (70 000 000; 96 000 000) 54 000 000 158 000 000
tests::test_create_program_simple 121 000 000; +112.28% ‼️ 57 000 000 57 880 000 (43 500 000; 67 500 000) 28 000 000 109 000 000
tests::test_create_program_with_exceeding_value 44 000 000; +37.50% ✔️ 32 000 000 36 240 000 (20 500 000; 49 000 000) 11 000 000 97 000 000
tests::test_create_program_with_value_lt_ed 43 000 000; +8.86% ✔️ 39 500 000 43 590 000 (27 000 000; 57 000 000) 16 000 000 100 000 000
tests::test_create_program_without_gas_works 35 000 000; +2.94% ✔️ 34 000 000 38 390 000 (20 500 000; 53 000 000) 11 000 000 109 000 000
tests::test_message_processing_for_non_existing_destination 27 000 000; -10.00% ✔️ 30 000 000 32 300 000 (13 000 000; 47 500 000) 5 000 000 100 000 000
tests::test_reply_to_terminated_program 72 000 000; +111.76% ❗ 34 000 000 36 960 000 (21 000 000; 47 000 000) 11 000 000 113 000 000
tests::test_same_code_submission_fails 43 000 000; +26.47% ✔️ 34 000 000 36 560 000 (18 500 000; 50 500 000) 5 000 000 109 000 000
tests::test_two_contracts_composition_works 124 000 000; +87.88% ❗ 66 000 000 68 130 000 (55 500 000; 79 500 000) 40 000 000 127 000 000
tests::uninitialized_program_should_accept_replies 41 000 000; -2.38% ✔️ 42 000 000 46 010 000 (31 000 000; 58 000 000) 19 000 000 95 000 000
tests::unstoppable_block_execution_works 32 000 000; -13.51% ✔️ 37 000 000 38 190 000 (24 000 000; 50 500 000) 8 000 000 110 000 000
tests::unused_gas_released_back_works 35 000 000; +1.45% ✔️ 34 500 000 36 640 000 (21 500 000; 47 000 000) 6 000 000 92 000 000
tests::wake_messages_after_program_inited 143 000 000; +95.89% ‼️ 73 000 000 76 110 000 (65 000 000; 84 500 000) 48 000 000 128 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 19 000 000; -33.33% ✔️ 28 500 000 31 110 000 (12 000 000; 43 000 000) 4 000 000 101 000 000
tests::check_changed_pages_in_storage 21 000 000; -40.85% ✔️ 35 500 000 37 650 000 (23 000 000; 47 500 000) 8 000 000 101 000 000
tests::debug_mode_works 23 000 000; -33.33% ✔️ 34 500 000 36 350 000 (20 000 000; 49 000 000) 7 000 000 83 000 000

name = pallet-gear-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 31 000 000; -11.43% ✔️ 35 000 000 34 150 000 (18 500 000; 49 500 000) 3 000 000 91 000 000
tests::all_keys_are_cleared 42 000 000; +21.74% ✔️ 34 500 000 37 510 000 (22 500 000; 52 000 000) 4 000 000 94 000 000
tests::can_cut_nodes 23 000 000; -28.12% ✔️ 32 000 000 35 290 000 (20 000 000; 47 500 000) 4 000 000 101 000 000
tests::gas_free_after_consumed 102 000 000; +200.00% ❗ 34 000 000 36 620 000 (21 000 000; 50 500 000) 4 000 000 106 000 000
tests::limit_vs_origin 40 000 000; +11.11% ✔️ 36 000 000 35 480 000 (21 000 000; 45 500 000) 5 000 000 100 000 000
tests::long_chain 18 000 000; -44.62% ✔️ 32 500 000 34 560 000 (21 500 000; 44 000 000) 4 000 000 101 000 000
tests::simple_value_tree 138 000 000; +300.00% ‼️ 34 500 000 36 860 000 (24 000 000; 48 000 000) 4 000 000 89 000 000
tests::split_with_no_value 96 000 000; +200.00% ‼️ 32 000 000 35 970 000 (20 000 000; 48 000 000) 5 000 000 93 000 000
tests::splits_fail 73 000 000; +121.21% ❗ 33 000 000 35 570 000 (21 000 000; 48 000 000) 5 000 000 96 000 000
tests::sub_nodes_tree 119 000 000; +283.87% ‼️ 31 000 000 36 050 000 (23 500 000; 45 500 000) 3 000 000 99 000 000
tests::sub_nodes_tree_with_spends 92 000 000; +192.06% ‼️ 31 500 000 34 360 000 (21 500 000; 48 500 000) 4 000 000 87 000 000
tests::subtree_gas_limit_remains_intact 218 000 000; +541.18% ‼️ 34 000 000 35 810 000 (24 000 000; 49 000 000) 4 000 000 99 000 000
tests::test_consume_procedure 86 000 000; +156.72% ❗ 33 500 000 35 800 000 (22 500 000; 46 000 000) 5 000 000 95 000 000
tests::value_tree_known_errors 90 000 000; +164.71% ❗ 34 000 000 34 670 000 (19 500 000; 46 000 000) 5 000 000 96 000 000
tests::value_tree_with_all_kinds_of_nodes 85 000 000; +161.54% ‼️ 32 500 000 33 570 000 (24 500 000; 43 500 000) 5 000 000 82 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 20 000 000; -28.57% ✔️ 28 000 000 29 390 000 (18 000 000; 40 500 000) 3 000 000 75 000 000
tests::dequeued_impl_works_manually 189 000 000; +530.00% ‼️ 30 000 000 33 270 000 (20 000 000; 43 500 000) 4 000 000 81 000 000
tests::queue_processing_impl_works_manually 94 000 000; +198.41% ‼️ 31 500 000 33 280 000 (24 500 000; 40 500 000) 7 000 000 81 000 000
tests::queue_works 147 000 000; +359.38% ‼️ 32 000 000 33 390 000 (22 500 000; 42 500 000) 4 000 000 99 000 000
tests::sent_impl_works 166 000 000; +453.33% ‼️ 30 000 000 32 680 000 (22 500 000; 42 500 000) 5 000 000 89 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 84 000 000; +194.74% ‼️ 28 500 000 30 430 000 (21 500 000; 41 000 000) 3 000 000 82 000 000
tests::custom_fee_multiplier_updated_per_block 155 000 000; +416.67% ‼️ 30 000 000 32 200 000 (23 000 000; 41 000 000) 8 000 000 80 000 000
tests::fee_rounding_error_bounded_by_multiplier 162 000 000; +406.25% ‼️ 32 000 000 33 160 000 (23 000 000; 42 000 000) 6 000 000 82 000 000
tests::mq_size_affecting_fee_works 82 000 000; +160.32% ‼️ 31 500 000 32 230 000 (22 000 000; 42 000 000) 5 000 000 68 000 000
tests::mq_size_not_affecting_fee_works 146 000 000; +370.97% ‼️ 31 000 000 32 840 000 (22 000 000; 43 000 000) 5 000 000 72 000 000
tests::query_info_and_fee_details_work 74 000 000; +134.92% ‼️ 31 500 000 31 450 000 (22 000 000; 39 000 000) 6 000 000 72 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 49 000 000; +68.97% ❗ 29 000 000 30 460 000 (18 500 000; 43 000 000) 4 000 000 82 000 000
tests::pause_program_twice_fails 67 000 000; +131.03% ‼️ 29 000 000 28 990 000 (19 500 000; 40 000 000) 4 000 000 57 000 000
tests::pause_program_works 72 000 000; +114.93% ‼️ 33 500 000 33 210 000 (23 500 000; 42 000 000) 11 000 000 70 000 000
tests::pause_terminated_program_fails 53 000 000; +82.76% ❗ 29 000 000 28 960 000 (20 000 000; 39 500 000) 5 000 000 63 000 000
tests::pause_uninitialized_program_works 82 000 000; +173.33% ❗ 30 000 000 33 850 000 (25 000 000; 41 500 000) 11 000 000 94 000 000
tests::resume_program_twice_fails 80 000 000; +128.57% ‼️ 35 000 000 36 430 000 (29 500 000; 43 000 000) 16 000 000 68 000 000
tests::resume_program_wrong_list_fails 79 000 000; +132.35% ‼️ 34 000 000 34 650 000 (25 000 000; 41 000 000) 13 000 000 74 000 000
tests::resume_program_wrong_memory_fails 92 000 000; +187.50% ❗ 32 000 000 35 050 000 (25 500 000; 45 000 000) 14 000 000 94 000 000
tests::resume_uninitialized_program_works 99 000 000; +200.00% ‼️ 33 000 000 34 870 000 (25 500 000; 43 000 000) 13 000 000 90 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 66 000 000; +144.44% ‼️ 27 000 000 27 590 000 (18 500 000; 35 500 000) 5 000 000 66 000 000
tests::dust_discarded_with_noop 167 000 000; +542.31% ‼️ 26 000 000 27 790 000 (21 000 000; 34 000 000) 5 000 000 88 000 000
tests::external_submitter_gets_rewarded 121 000 000; +348.15% ‼️ 27 000 000 28 370 000 (20 000 000; 34 000 000) 8 000 000 88 000 000
tests::gas_properly_handled_for_trap_replies 70 000 000; +169.23% ‼️ 26 000 000 28 640 000 (20 500 000; 36 000 000) 9 000 000 64 000 000
tests::ocw_double_charge 80 000 000; +207.69% ❗ 26 000 000 27 070 000 (18 500 000; 33 000 000) 7 000 000 88 000 000
tests::ocw_interval_maintained 72 000 000; +182.35% ‼️ 25 500 000 26 630 000 (18 500 000; 34 000 000) 6 000 000 56 000 000
tests::ocw_interval_stretches_for_large_wait_list 83 000 000; +232.00% ‼️ 25 000 000 27 330 000 (19 000 000; 33 000 000) 6 000 000 80 000 000
tests::ocw_overlapping_prevented 63 000 000; +173.91% ‼️ 23 000 000 25 630 000 (15 500 000; 34 000 000) 5 000 000 60 000 000
tests::rent_charge_works 43 000 000; +95.45% ❗ 22 000 000 25 060 000 (18 000 000; 32 000 000) 5 000 000 52 000 000
tests::trap_reply_message_is_sent 156 000 000; +593.33% ‼️ 22 500 000 24 150 000 (16 000 000; 28 500 000) 7 000 000 61 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 146 641 477 852; +112.72% ‼️ 68 936 046 852 68 943 655 851 (68 785 810 614; 69 077 068 521) 68 429 891 907 69 467 729 595

name = Async RwLock

name current median average lower/upper quartile min max
check readers 892 684 728; +984.57% ‼️ 82 307 588 83 357 724 (80 332 286; 85 447 641) 75 045 985 95 825 248
forever lock 926 922 622; +970.02% ‼️ 86 626 764 87 694 387 (84 281 132; 90 800 670) 78 741 438 104 823 400
read while writing 1 866 000 259; +1743.23% ‼️ 101 235 397 103 978 664 (97 447 163; 107 219 720) 89 507 808 132 082 247
rwlock wide 2 463 680 847; +1853.60% ‼️ 126 109 653 129 179 178 (119 300 846; 135 744 268) 110 421 721 166 953 424
write while reading 2 005 220 754; +1777.97% ‼️ 106 775 982 109 984 104 (103 191 921; 114 125 452) 96 414 356 137 389 375

name = Async init

name current median average lower/upper quartile min max
approved pong 11 108 515 949; +6.65% ‼️ 10 416 112 293 10 412 214 667 (10 364 272 209; 10 452 641 935) 10 231 784 780 10 549 894 132

name = Async-await

name current median average lower/upper quartile min max
normal 623 512 258; +833.04% ‼️ 66 826 149 67 712 089 (63 990 164; 71 637 731) 57 667 325 82 297 432
panic 676 820 457; +869.49% ‼️ 69 811 863 69 450 056 (65 551 859; 72 795 017) 58 764 650 84 784 608

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 1 151 221 465; +1158.22% ‼️ 91 496 171 92 636 587 (88 244 587; 95 084 111) 82 507 192 113 285 710

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; eve doesn't answer, alice replies with incorrect payload 12 626 268 059; +157.23% ‼️ 4 908 627 596 4 905 275 495 (4 883 920 951; 4 925 980 042) 4 789 658 705 4 990 591 720
2 of 3; no replies 6 724 334 804; +39.15% ‼️ 4 832 497 187 4 833 982 547 (4 813 009 027; 4 850 100 536) 4 749 909 239 4 944 545 046
Single signatory & zero threshold 7 041 312 128; +43.53% ‼️ 4 905 818 145 4 904 938 424 (4 878 352 685; 4 927 914 763) 4 810 061 514 5 067 709 241
Three signatories; Bob replies with incorrect signature 12 797 613 423; +160.27% ‼️ 4 917 067 396 4 914 431 461 (4 895 633 915; 4 936 615 977) 4 802 363 573 5 008 528 988
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 12 800 478 975; +160.62% ‼️ 4 911 501 461 4 910 140 874 (4 891 215 945; 4 931 394 025) 4 812 977 650 5 001 310 175

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 3 834 190 626; +56.69% ‼️ 2 446 976 016 2 445 742 851 (2 428 004 741; 2 459 372 906) 2 391 536 584 2 515 623 555
correct signature but for another message 3 399 762 231; +35.79% ‼️ 2 503 632 295 2 498 991 011 (2 472 054 937; 2 527 645 052) 2 398 497 030 2 554 224 003
no reply 3 880 415 608; +59.76% ‼️ 2 428 882 473 2 426 240 588 (2 412 642 956; 2 443 360 645) 2 366 950 926 2 477 555 552
signed message 3 741 654 100; +50.02% ‼️ 2 494 026 210 2 497 186 405 (2 478 995 830; 2 515 059 978) 2 430 002 624 2 582 422 550

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 731 557 795; +878.72% ‼️ 74 746 526 74 850 247 (70 395 962; 78 208 647) 59 593 478 89 024 331

name = Decoder

name current median average lower/upper quartile min max
decoder 559 946 650; +725.45% ‼️ 67 835 565 67 730 248 (65 452 808; 70 988 928) 55 205 079 81 680 367

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 2 939 303 250; +1896.33% ‼️ 147 235 580 151 116 553 (137 519 931; 159 473 980) 130 220 061 204 597 858
join 3 011 250 762; +1945.94% ‼️ 147 181 732 153 078 435 (140 858 681; 161 658 315) 130 873 659 193 835 327
select 2 962 287 143; +1958.59% ‼️ 143 898 844 147 070 434 (134 133 100; 156 406 443) 128 612 425 183 699 788

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 2 570 161 955; +1885.16% ‼️ 129 468 763 133 297 754 (121 169 740; 139 208 405) 114 204 088 173 050 963

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 401 710 008; +473.00% ‼️ 70 106 783 70 870 732 (65 988 814; 74 949 707) 59 910 964 91 350 595

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 717 886 970; +818.86% ‼️ 78 127 600 78 373 305 (75 888 175; 80 106 119) 71 191 302 90 367 518

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 10 230 738 402; +5.90% ‼️ 9 661 108 358 9 654 177 200 (9 617 443 924; 9 689 061 008) 9 482 472 041 9 777 814 572

name = Multiping

name current median average lower/upper quartile min max
multiping 523 146 711; +741.97% ‼️ 62 133 726 62 490 174 (58 184 360; 66 935 843) 50 540 676 77 033 010

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 304 119 303; +394.47% ‼️ 61 504 357 61 380 743 (57 386 794; 64 902 666) 51 184 746 73 417 316
ping-pong wgas 663 805 574; +853.14% ‼️ 69 644 223 69 803 239 (66 377 883; 73 287 838) 56 691 021 85 510 851

name = Program_id test

name current median average lower/upper quartile min max
program_id 373 625 983; +563.43% ‼️ 56 317 464 58 025 483 (53 586 500; 62 183 049) 47 921 326 74 712 949

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 663 713 861; +862.23% ‼️ 68 976 587 69 100 398 (64 549 068; 71 761 008) 58 195 903 86 166 864
state-saving 690 521 963; +911.59% ‼️ 68 261 056 68 151 693 (63 264 202; 72 221 163) 52 004 305 82 942 854

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 471 768 553; +619.62% ‼️ 65 557 777 65 326 990 (61 540 510; 68 943 360) 53 811 571 82 388 544
Try to re-init existing program 726 055 779; +858.05% ‼️ 75 784 413 76 223 053 (72 506 349; 79 938 624) 64 386 006 94 739 636

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 222 222 900; +395.53% ‼️ 44 845 668 45 234 345 (42 144 088; 47 586 392) 35 838 943 60 803 349

name = Wait test

name current median average lower/upper quartile min max
wait 794 275 065; +1022.81% ‼️ 70 739 859 72 731 971 (67 611 812; 77 209 688) 58 630 302 104 442 027

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 811 838 115; +654.92% ‼️ 107 540 020 108 485 078 (103 139 467; 112 375 991) 95 042 322 131 005 763

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 761 544 856; +910.88% ‼️ 75 334 517 75 104 951 (71 655 126; 78 749 800) 61 649 722 94 000 317

name = guestbook test

name current median average lower/upper quartile min max
guestbook 5 152 597 397; +8.43% ‼️ 4 752 192 867 4 750 031 637 (4 723 826 349; 4 776 951 257) 4 644 277 089 4 832 887 232

name = gui test

name current median average lower/upper quartile min max
gui 6 984 446 722; +8.94% ‼️ 6 411 491 209 6 411 937 756 (6 383 518 098; 6 447 288 092) 6 283 447 316 6 524 022 283
94fbad9
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 58 883 000 000; +4734.40% ❗ 1 218 000 000 2 036 510 000 (1 201 000 000; 1 235 000 000) 1 138 000 000 83 169 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 10 000 000; +150.00% ❗ 4 000 000 4 210 000 (3 000 000; 4 000 000) 3 000 000 18 000 000
schedule::test::print_test_schedule 8 000 000; +100.00% ❗ 4 000 000 5 720 000 (4 000 000; 5 000 000) 2 000 000 112 000 000
tests::call_forbidden_function 20 000 000; +150.00% ‼️ 8 000 000 8 020 000 (7 000 000; 9 000 000) 5 000 000 19 000 000
tests::cascading_messages_with_value_do_not_overcharge 177 000 000; +174.42% ‼️ 64 500 000 66 820 000 (60 000 000; 72 000 000) 54 000 000 133 000 000
tests::defer_program_initialization 43 000 000; +79.17% ❗ 24 000 000 25 330 000 (22 000 000; 27 000 000) 20 000 000 48 000 000
tests::distributor_distribute 132 000 000; +676.47% ‼️ 17 000 000 19 590 000 (16 000 000; 21 000 000) 13 000 000 79 000 000
tests::distributor_initialize 53 000 000; +341.67% ❗ 12 000 000 14 170 000 (11 000 000; 14 500 000) 9 000 000 84 000 000
tests::events_logging_works 135 000 000; +1250.00% ‼️ 10 000 000 13 870 000 (9 000 000; 14 500 000) 7 000 000 72 000 000
tests::exit_handle 123 000 000; +1266.67% ‼️ 9 000 000 13 400 000 (8 000 000; 14 500 000) 6 000 000 87 000 000
tests::exit_init 136 000 000; +750.00% ‼️ 16 000 000 20 010 000 (14 000 000; 21 000 000) 11 000 000 73 000 000
tests::gas_spent_precalculated 122 000 000; +1120.00% ‼️ 10 000 000 14 480 000 (9 000 000; 17 500 000) 6 000 000 51 000 000
tests::gas_spent_vs_balance 128 000 000; +228.21% ‼️ 39 000 000 42 690 000 (34 500 000; 47 000 000) 29 000 000 80 000 000
tests::init_message_logging_works 122 000 000; +1120.00% ‼️ 10 000 000 13 700 000 (8 000 000; 15 000 000) 6 000 000 65 000 000
tests::init_wait_reply_exit_cleaned_storage 125 000 000; +362.96% ‼️ 27 000 000 31 140 000 (24 000 000; 36 500 000) 19 000 000 79 000 000
tests::lazy_pages 117 000 000; +963.64% ‼️ 11 000 000 15 810 000 (8 000 000; 20 000 000) 6 000 000 66 000 000
tests::mailbox_threshold_works 70 000 000; +159.26% ❗ 27 000 000 31 770 000 (23 000 000; 36 000 000) 18 000 000 81 000 000
tests::mailbox_works 22 000 000; +100.00% ❗ 11 000 000 17 110 000 (8 500 000; 20 000 000) 6 000 000 72 000 000
tests::memory_access_cases 43 000 000; +258.33% ❗ 12 000 000 17 900 000 (9 000 000; 23 500 000) 5 000 000 69 000 000
tests::messages_processing_works 60 000 000; +380.00% ❗ 12 500 000 17 980 000 (9 000 000; 24 000 000) 5 000 000 84 000 000
tests::messages_to_paused_program_skipped 81 000 000; +326.32% ‼️ 19 000 000 23 840 000 (15 000 000; 30 000 000) 10 000 000 63 000 000
tests::messages_to_uninitialized_program_wait 42 000 000; +110.00% ❗ 20 000 000 25 610 000 (15 000 000; 31 500 000) 10 000 000 68 000 000
tests::no_redundant_gas_value_after_exiting 77 000 000; +450.00% ❗ 14 000 000 20 280 000 (9 000 000; 25 000 000) 6 000 000 94 000 000
tests::paused_program_keeps_id 77 000 000; +220.83% ❗ 24 000 000 29 320 000 (17 500 000; 36 500 000) 13 000 000 106 000 000
tests::program_lifecycle_works 127 000 000; +916.00% ‼️ 12 500 000 20 410 000 (8 000 000; 26 000 000) 5 000 000 81 000 000
tests::program_messages_to_paused_program_skipped 116 000 000; +231.43% ‼️ 35 000 000 39 480 000 (28 500 000; 49 000 000) 21 000 000 87 000 000
tests::replies_to_paused_program_skipped 103 000 000; +415.00% ‼️ 20 000 000 26 260 000 (15 000 000; 31 500 000) 11 000 000 92 000 000
tests::restrict_start_section 66 000 000; +388.89% ❗ 13 500 000 20 210 000 (7 000 000; 27 000 000) 4 000 000 94 000 000
tests::resume_program_works 121 000 000; +261.19% ‼️ 33 500 000 38 580 000 (25 500 000; 48 500 000) 20 000 000 83 000 000
tests::send_message_expected_failure 110 000 000; +566.67% ‼️ 16 500 000 22 360 000 (8 500 000; 32 000 000) 5 000 000 75 000 000
tests::send_message_works 69 000 000; +375.86% ❗ 14 500 000 23 310 000 (9 000 000; 28 500 000) 6 000 000 114 000 000
tests::send_reply_failure_to_claim_from_mailbox 60 000 000; +200.00% ❗ 20 000 000 25 320 000 (9 000 000; 37 500 000) 6 000 000 101 000 000
tests::send_reply_value_claiming_works 64 000 000; +236.84% ❗ 19 000 000 25 990 000 (11 000 000; 36 000 000) 7 000 000 100 000 000
tests::send_reply_works 88 000 000; +329.27% ❗ 20 500 000 25 810 000 (10 000 000; 37 500 000) 6 000 000 95 000 000
tests::spent_gas_to_reward_block_author_works 64 000 000; +312.90% ❗ 15 500 000 25 580 000 (9 500 000; 37 500 000) 5 000 000 102 000 000
tests::submit_program_expected_failure 87 000 000; +346.15% ‼️ 19 500 000 24 470 000 (8 000 000; 37 500 000) 4 000 000 75 000 000
tests::submit_program_fails_on_duplicate_id 59 000 000; +151.06% ❗ 23 500 000 29 070 000 (10 500 000; 41 000 000) 6 000 000 121 000 000
tests::test_async_messages 599 000 000; +190.78% ‼️ 206 000 000 206 850 000 (192 500 000; 224 000 000) 172 000 000 249 000 000
tests::test_code_is_not_reset_within_program_submission 188 000 000; +652.00% ‼️ 25 000 000 27 400 000 (10 000 000; 41 500 000) 4 000 000 106 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 32 000 000; +45.45% ✔️ 22 000 000 27 820 000 (9 500 000; 39 500 000) 4 000 000 83 000 000
tests::test_code_submission_pass 60 000 000; +122.22% ❗ 27 000 000 29 180 000 (9 000 000; 43 000 000) 5 000 000 102 000 000
tests::test_create_program_duplicate 111 000 000; +146.67% ❗ 45 000 000 49 080 000 (35 000 000; 63 000 000) 24 000 000 113 000 000
tests::test_create_program_duplicate_in_one_execution 137 000 000; +260.53% ‼️ 38 000 000 39 600 000 (26 000 000; 50 000 000) 16 000 000 99 000 000
tests::test_create_program_miscellaneous 137 000 000; +185.42% ‼️ 48 000 000 52 330 000 (40 000 000; 61 500 000) 25 000 000 113 000 000
tests::test_create_program_no_code_hash 260 000 000; +211.38% ‼️ 83 500 000 84 740 000 (70 000 000; 96 000 000) 54 000 000 158 000 000
tests::test_create_program_simple 79 000 000; +38.60% ❗ 57 000 000 57 880 000 (43 500 000; 67 500 000) 28 000 000 109 000 000
tests::test_create_program_with_exceeding_value 117 000 000; +265.62% ‼️ 32 000 000 36 240 000 (20 500 000; 49 000 000) 11 000 000 97 000 000
tests::test_create_program_with_value_lt_ed 46 000 000; +16.46% ✔️ 39 500 000 43 590 000 (27 000 000; 57 000 000) 16 000 000 100 000 000
tests::test_create_program_without_gas_works 51 000 000; +50.00% ✔️ 34 000 000 38 390 000 (20 500 000; 53 000 000) 11 000 000 109 000 000
tests::test_message_processing_for_non_existing_destination 113 000 000; +276.67% ‼️ 30 000 000 32 300 000 (13 000 000; 47 500 000) 5 000 000 100 000 000
tests::test_reply_to_terminated_program 105 000 000; +208.82% ❗ 34 000 000 36 960 000 (21 000 000; 47 000 000) 11 000 000 113 000 000
tests::test_same_code_submission_fails 136 000 000; +300.00% ‼️ 34 000 000 36 560 000 (18 500 000; 50 500 000) 5 000 000 109 000 000
tests::test_two_contracts_composition_works 132 000 000; +100.00% ‼️ 66 000 000 68 130 000 (55 500 000; 79 500 000) 40 000 000 127 000 000
tests::uninitialized_program_should_accept_replies 106 000 000; +152.38% ‼️ 42 000 000 46 010 000 (31 000 000; 58 000 000) 19 000 000 95 000 000
tests::unstoppable_block_execution_works 109 000 000; +194.59% ❗ 37 000 000 38 190 000 (24 000 000; 50 500 000) 8 000 000 110 000 000
tests::unused_gas_released_back_works 95 000 000; +175.36% ‼️ 34 500 000 36 640 000 (21 500 000; 47 000 000) 6 000 000 92 000 000
tests::wake_messages_after_program_inited 237 000 000; +224.66% ‼️ 73 000 000 76 110 000 (65 000 000; 84 500 000) 48 000 000 128 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 116 000 000; +307.02% ‼️ 28 500 000 31 110 000 (12 000 000; 43 000 000) 4 000 000 101 000 000
tests::check_changed_pages_in_storage 239 000 000; +573.24% ‼️ 35 500 000 37 650 000 (23 000 000; 47 500 000) 8 000 000 101 000 000
tests::debug_mode_works 80 000 000; +131.88% ❗ 34 500 000 36 350 000 (20 000 000; 49 000 000) 7 000 000 83 000 000

name = pallet-gear-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 226 000 000; +545.71% ‼️ 35 000 000 34 150 000 (18 500 000; 49 500 000) 3 000 000 91 000 000
tests::all_keys_are_cleared 65 000 000; +88.41% ❗ 34 500 000 37 510 000 (22 500 000; 52 000 000) 4 000 000 94 000 000
tests::can_cut_nodes 131 000 000; +309.38% ‼️ 32 000 000 35 290 000 (20 000 000; 47 500 000) 4 000 000 101 000 000
tests::gas_free_after_consumed 61 000 000; +79.41% ❗ 34 000 000 36 620 000 (21 000 000; 50 500 000) 4 000 000 106 000 000
tests::limit_vs_origin 58 000 000; +61.11% ❗ 36 000 000 35 480 000 (21 000 000; 45 500 000) 5 000 000 100 000 000
tests::long_chain 204 000 000; +527.69% ‼️ 32 500 000 34 560 000 (21 500 000; 44 000 000) 4 000 000 101 000 000
tests::simple_value_tree 314 000 000; +810.14% ‼️ 34 500 000 36 860 000 (24 000 000; 48 000 000) 4 000 000 89 000 000
tests::split_with_no_value 203 000 000; +534.38% ‼️ 32 000 000 35 970 000 (20 000 000; 48 000 000) 5 000 000 93 000 000
tests::splits_fail 208 000 000; +530.30% ‼️ 33 000 000 35 570 000 (21 000 000; 48 000 000) 5 000 000 96 000 000
tests::sub_nodes_tree 102 000 000; +229.03% ‼️ 31 000 000 36 050 000 (23 500 000; 45 500 000) 3 000 000 99 000 000
tests::sub_nodes_tree_with_spends 196 000 000; +522.22% ‼️ 31 500 000 34 360 000 (21 500 000; 48 500 000) 4 000 000 87 000 000
tests::subtree_gas_limit_remains_intact 207 000 000; +508.82% ‼️ 34 000 000 35 810 000 (24 000 000; 49 000 000) 4 000 000 99 000 000
tests::test_consume_procedure 208 000 000; +520.90% ‼️ 33 500 000 35 800 000 (22 500 000; 46 000 000) 5 000 000 95 000 000
tests::value_tree_known_errors 184 000 000; +441.18% ‼️ 34 000 000 34 670 000 (19 500 000; 46 000 000) 5 000 000 96 000 000
tests::value_tree_with_all_kinds_of_nodes 154 000 000; +373.85% ‼️ 32 500 000 33 570 000 (24 500 000; 43 500 000) 5 000 000 82 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 163 000 000; +482.14% ‼️ 28 000 000 29 390 000 (18 000 000; 40 500 000) 3 000 000 75 000 000
tests::dequeued_impl_works_manually 163 000 000; +443.33% ‼️ 30 000 000 33 270 000 (20 000 000; 43 500 000) 4 000 000 81 000 000
tests::queue_processing_impl_works_manually 71 000 000; +125.40% ❗ 31 500 000 33 280 000 (24 500 000; 40 500 000) 7 000 000 81 000 000
tests::queue_works 160 000 000; +400.00% ‼️ 32 000 000 33 390 000 (22 500 000; 42 500 000) 4 000 000 99 000 000
tests::sent_impl_works 150 000 000; +400.00% ‼️ 30 000 000 32 680 000 (22 500 000; 42 500 000) 5 000 000 89 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 148 000 000; +419.30% ‼️ 28 500 000 30 430 000 (21 500 000; 41 000 000) 3 000 000 82 000 000
tests::custom_fee_multiplier_updated_per_block 158 000 000; +426.67% ‼️ 30 000 000 32 200 000 (23 000 000; 41 000 000) 8 000 000 80 000 000
tests::fee_rounding_error_bounded_by_multiplier 193 000 000; +503.12% ‼️ 32 000 000 33 160 000 (23 000 000; 42 000 000) 6 000 000 82 000 000
tests::mq_size_affecting_fee_works 146 000 000; +363.49% ‼️ 31 500 000 32 230 000 (22 000 000; 42 000 000) 5 000 000 68 000 000
tests::mq_size_not_affecting_fee_works 246 000 000; +693.55% ‼️ 31 000 000 32 840 000 (22 000 000; 43 000 000) 5 000 000 72 000 000
tests::query_info_and_fee_details_work 145 000 000; +360.32% ‼️ 31 500 000 31 450 000 (22 000 000; 39 000 000) 6 000 000 72 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 223 000 000; +668.97% ‼️ 29 000 000 30 460 000 (18 500 000; 43 000 000) 4 000 000 82 000 000
tests::pause_program_twice_fails 145 000 000; +400.00% ‼️ 29 000 000 28 990 000 (19 500 000; 40 000 000) 4 000 000 57 000 000
tests::pause_program_works 338 000 000; +908.96% ‼️ 33 500 000 33 210 000 (23 500 000; 42 000 000) 11 000 000 70 000 000
tests::pause_terminated_program_fails 241 000 000; +731.03% ‼️ 29 000 000 28 960 000 (20 000 000; 39 500 000) 5 000 000 63 000 000
tests::pause_uninitialized_program_works 187 000 000; +523.33% ‼️ 30 000 000 33 850 000 (25 000 000; 41 500 000) 11 000 000 94 000 000
tests::resume_program_twice_fails 226 000 000; +545.71% ‼️ 35 000 000 36 430 000 (29 500 000; 43 000 000) 16 000 000 68 000 000
tests::resume_program_wrong_list_fails 319 000 000; +838.24% ‼️ 34 000 000 34 650 000 (25 000 000; 41 000 000) 13 000 000 74 000 000
tests::resume_program_wrong_memory_fails 126 000 000; +293.75% ‼️ 32 000 000 35 050 000 (25 500 000; 45 000 000) 14 000 000 94 000 000
tests::resume_uninitialized_program_works 121 000 000; +266.67% ‼️ 33 000 000 34 870 000 (25 500 000; 43 000 000) 13 000 000 90 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 166 000 000; +514.81% ‼️ 27 000 000 27 590 000 (18 500 000; 35 500 000) 5 000 000 66 000 000
tests::dust_discarded_with_noop 168 000 000; +546.15% ‼️ 26 000 000 27 790 000 (21 000 000; 34 000 000) 5 000 000 88 000 000
tests::external_submitter_gets_rewarded 246 000 000; +811.11% ‼️ 27 000 000 28 370 000 (20 000 000; 34 000 000) 8 000 000 88 000 000
tests::gas_properly_handled_for_trap_replies 146 000 000; +461.54% ‼️ 26 000 000 28 640 000 (20 500 000; 36 000 000) 9 000 000 64 000 000
tests::ocw_double_charge 196 000 000; +653.85% ‼️ 26 000 000 27 070 000 (18 500 000; 33 000 000) 7 000 000 88 000 000
tests::ocw_interval_maintained 71 000 000; +178.43% ‼️ 25 500 000 26 630 000 (18 500 000; 34 000 000) 6 000 000 56 000 000
tests::ocw_interval_stretches_for_large_wait_list 157 000 000; +528.00% ‼️ 25 000 000 27 330 000 (19 000 000; 33 000 000) 6 000 000 80 000 000
tests::ocw_overlapping_prevented 135 000 000; +486.96% ‼️ 23 000 000 25 630 000 (15 500 000; 34 000 000) 5 000 000 60 000 000
tests::rent_charge_works 197 000 000; +795.45% ‼️ 22 000 000 25 060 000 (18 000 000; 32 000 000) 5 000 000 52 000 000
tests::trap_reply_message_is_sent 121 000 000; +437.78% ‼️ 22 500 000 24 150 000 (16 000 000; 28 500 000) 7 000 000 61 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 142 124 903 293; +106.17% ‼️ 68 936 046 852 68 943 655 851 (68 785 810 614; 69 077 068 521) 68 429 891 907 69 467 729 595

name = Async RwLock

name current median average lower/upper quartile min max
check readers 809 983 246; +884.09% ‼️ 82 307 588 83 357 724 (80 332 286; 85 447 641) 75 045 985 95 825 248
forever lock 964 920 373; +1013.88% ‼️ 86 626 764 87 694 387 (84 281 132; 90 800 670) 78 741 438 104 823 400
read while writing 1 654 616 434; +1534.42% ‼️ 101 235 397 103 978 664 (97 447 163; 107 219 720) 89 507 808 132 082 247
rwlock wide 2 336 425 539; +1752.69% ‼️ 126 109 653 129 179 178 (119 300 846; 135 744 268) 110 421 721 166 953 424
write while reading 1 955 578 961; +1731.48% ‼️ 106 775 982 109 984 104 (103 191 921; 114 125 452) 96 414 356 137 389 375

name = Async init

name current median average lower/upper quartile min max
approved pong 11 246 432 380; +7.97% ‼️ 10 416 112 293 10 412 214 667 (10 364 272 209; 10 452 641 935) 10 231 784 780 10 549 894 132

name = Async-await

name current median average lower/upper quartile min max
normal 622 628 082; +831.71% ‼️ 66 826 149 67 712 089 (63 990 164; 71 637 731) 57 667 325 82 297 432
panic 715 928 569; +925.51% ‼️ 69 811 863 69 450 056 (65 551 859; 72 795 017) 58 764 650 84 784 608

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 1 022 837 288; +1017.90% ‼️ 91 496 171 92 636 587 (88 244 587; 95 084 111) 82 507 192 113 285 710

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; eve doesn't answer, alice replies with incorrect payload 11 268 406 442; +129.56% ‼️ 4 908 627 596 4 905 275 495 (4 883 920 951; 4 925 980 042) 4 789 658 705 4 990 591 720
2 of 3; no replies 6 203 600 664; +28.37% ‼️ 4 832 497 187 4 833 982 547 (4 813 009 027; 4 850 100 536) 4 749 909 239 4 944 545 046
Single signatory & zero threshold 7 758 405 293; +58.15% ‼️ 4 905 818 145 4 904 938 424 (4 878 352 685; 4 927 914 763) 4 810 061 514 5 067 709 241
Three signatories; Bob replies with incorrect signature 11 575 910 447; +135.42% ‼️ 4 917 067 396 4 914 431 461 (4 895 633 915; 4 936 615 977) 4 802 363 573 5 008 528 988
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 11 576 608 183; +135.70% ‼️ 4 911 501 461 4 910 140 874 (4 891 215 945; 4 931 394 025) 4 812 977 650 5 001 310 175

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 3 632 249 252; +48.44% ‼️ 2 446 976 016 2 445 742 851 (2 428 004 741; 2 459 372 906) 2 391 536 584 2 515 623 555
correct signature but for another message 4 097 285 882; +63.65% ‼️ 2 503 632 295 2 498 991 011 (2 472 054 937; 2 527 645 052) 2 398 497 030 2 554 224 003
no reply 3 290 505 871; +35.47% ‼️ 2 428 882 473 2 426 240 588 (2 412 642 956; 2 443 360 645) 2 366 950 926 2 477 555 552
signed message 3 987 440 910; +59.88% ‼️ 2 494 026 210 2 497 186 405 (2 478 995 830; 2 515 059 978) 2 430 002 624 2 582 422 550

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 779 792 236; +943.25% ‼️ 74 746 526 74 850 247 (70 395 962; 78 208 647) 59 593 478 89 024 331

name = Decoder

name current median average lower/upper quartile min max
decoder 609 797 741; +798.94% ‼️ 67 835 565 67 730 248 (65 452 808; 70 988 928) 55 205 079 81 680 367

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 2 967 389 815; +1915.40% ‼️ 147 235 580 151 116 553 (137 519 931; 159 473 980) 130 220 061 204 597 858
join 2 879 669 857; +1856.54% ‼️ 147 181 732 153 078 435 (140 858 681; 161 658 315) 130 873 659 193 835 327
select 2 875 720 673; +1898.43% ‼️ 143 898 844 147 070 434 (134 133 100; 156 406 443) 128 612 425 183 699 788

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 2 460 401 666; +1800.38% ‼️ 129 468 763 133 297 754 (121 169 740; 139 208 405) 114 204 088 173 050 963

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 427 083 727; +509.19% ‼️ 70 106 783 70 870 732 (65 988 814; 74 949 707) 59 910 964 91 350 595

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 747 471 374; +856.73% ‼️ 78 127 600 78 373 305 (75 888 175; 80 106 119) 71 191 302 90 367 518

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 10 244 046 405; +6.03% ‼️ 9 661 108 358 9 654 177 200 (9 617 443 924; 9 689 061 008) 9 482 472 041 9 777 814 572

name = Multiping

name current median average lower/upper quartile min max
multiping 593 040 640; +854.46% ‼️ 62 133 726 62 490 174 (58 184 360; 66 935 843) 50 540 676 77 033 010

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 361 417 581; +487.63% ‼️ 61 504 357 61 380 743 (57 386 794; 64 902 666) 51 184 746 73 417 316
ping-pong wgas 674 121 019; +867.95% ‼️ 69 644 223 69 803 239 (66 377 883; 73 287 838) 56 691 021 85 510 851

name = Program_id test

name current median average lower/upper quartile min max
program_id 370 910 893; +558.61% ‼️ 56 317 464 58 025 483 (53 586 500; 62 183 049) 47 921 326 74 712 949

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 704 331 497; +921.12% ‼️ 68 976 587 69 100 398 (64 549 068; 71 761 008) 58 195 903 86 166 864
state-saving 722 504 461; +958.44% ‼️ 68 261 056 68 151 693 (63 264 202; 72 221 163) 52 004 305 82 942 854

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 471 426 972; +619.10% ‼️ 65 557 777 65 326 990 (61 540 510; 68 943 360) 53 811 571 82 388 544
Try to re-init existing program 789 308 233; +941.52% ‼️ 75 784 413 76 223 053 (72 506 349; 79 938 624) 64 386 006 94 739 636

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 212 508 790; +373.87% ‼️ 44 845 668 45 234 345 (42 144 088; 47 586 392) 35 838 943 60 803 349

name = Wait test

name current median average lower/upper quartile min max
wait 796 269 296; +1025.63% ‼️ 70 739 859 72 731 971 (67 611 812; 77 209 688) 58 630 302 104 442 027

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 847 285 308; +687.88% ‼️ 107 540 020 108 485 078 (103 139 467; 112 375 991) 95 042 322 131 005 763

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 802 296 169; +964.98% ‼️ 75 334 517 75 104 951 (71 655 126; 78 749 800) 61 649 722 94 000 317

name = guestbook test

name current median average lower/upper quartile min max
guestbook 5 489 559 239; +15.52% ‼️ 4 752 192 867 4 750 031 637 (4 723 826 349; 4 776 951 257) 4 644 277 089 4 832 887 232

name = gui test

name current median average lower/upper quartile min max
gui 7 078 954 946; +10.41% ‼️ 6 411 491 209 6 411 937 756 (6 383 518 098; 6 447 288 092) 6 283 447 316 6 524 022 283
7e30b12
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 55 634 000 000; +4370.39% ❗ 1 244 500 000 2 371 709 999 (1 224 000 000; 1 406 000 000) 1 183 000 000 82 822 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 18 000 000; +125.00% ✔️ 8 000 000 29 970 000 (5 000 000; 20 500 000) 4 000 000 688 000 000
schedule::test::print_test_schedule 37 000 000; +289.47% ❗ 9 500 000 33 240 000 (6 000 000; 19 000 000) 3 000 000 748 000 000
tests::call_forbidden_function 70 000 000; +351.61% ❗ 15 500 000 33 830 000 (9 500 000; 27 500 000) 6 000 000 732 000 000
tests::cascading_messages_with_value_do_not_overcharge 167 000 000; +93.06% ❗ 86 500 000 105 270 000 (73 000 000; 105 000 000) 58 000 000 752 000 000
tests::defer_program_initialization 62 000 000; +87.88% ❗ 33 000 000 55 190 000 (26 000 000; 52 000 000) 21 000 000 756 000 000
tests::distributor_distribute 45 000 000; +66.67% ❗ 27 000 000 43 960 000 (20 000 000; 39 500 000) 15 000 000 768 000 000
tests::distributor_initialize 31 000 000; +47.62% ✔️ 21 000 000 37 060 000 (14 000 000; 36 000 000) 9 000 000 368 000 000
tests::events_logging_works 67 000 000; +226.83% ❗ 20 500 000 43 080 000 (14 000 000; 35 000 000) 8 000 000 720 000 000
tests::exit_handle 69 000 000; +228.57% ❗ 21 000 000 39 680 000 (13 000 000; 38 500 000) 6 000 000 294 000 000
tests::exit_init 56 000 000; +115.38% ❗ 26 000 000 48 350 000 (19 000 000; 51 000 000) 12 000 000 248 000 000
tests::gas_spent_precalculated 67 000 000; +226.83% ❗ 20 500 000 33 920 000 (11 500 000; 37 000 000) 7 000 000 320 000 000
tests::gas_spent_vs_balance 164 000 000; +203.70% ❗ 54 000 000 68 170 000 (42 500 000; 72 000 000) 29 000 000 304 000 000
tests::init_message_logging_works 166 000 000; +709.76% ❗ 20 500 000 34 980 000 (12 500 000; 38 500 000) 6 000 000 205 000 000
tests::init_wait_reply_exit_cleaned_storage 167 000 000; +288.37% ❗ 43 000 000 53 610 000 (29 000 000; 59 000 000) 22 000 000 196 000 000
tests::lazy_pages 98 000 000; +335.56% ❗ 22 500 000 36 250 000 (13 000 000; 41 500 000) 7 000 000 240 000 000
tests::mailbox_threshold_works 156 000 000; +290.00% ❗ 40 000 000 51 400 000 (31 000 000; 53 500 000) 21 000 000 215 000 000
tests::mailbox_works 153 000 000; +628.57% ❗ 21 000 000 38 860 000 (12 000 000; 41 500 000) 6 000 000 276 000 000
tests::memory_access_cases 145 000 000; +427.27% ❗ 27 500 000 42 660 000 (11 500 000; 49 500 000) 6 000 000 216 000 000
tests::messages_processing_works 43 000 000; +72.00% ✔️ 25 000 000 41 980 000 (11 000 000; 51 500 000) 7 000 000 223 000 000
tests::messages_to_paused_program_skipped 58 000 000; +84.13% ❗ 31 500 000 43 680 000 (18 000 000; 55 000 000) 12 000 000 167 000 000
tests::messages_to_uninitialized_program_wait 131 000 000; +367.86% ❗ 28 000 000 41 290 000 (17 500 000; 48 000 000) 12 000 000 202 000 000
tests::no_redundant_gas_value_after_exiting 118 000 000; +280.65% ❗ 31 000 000 42 420 000 (14 500 000; 50 000 000) 7 000 000 236 000 000
tests::paused_program_keeps_id 148 000 000; +300.00% ❗ 37 000 000 54 040 000 (21 500 000; 58 500 000) 14 000 000 388 000 000
tests::program_lifecycle_works 152 000 000; +406.67% ❗ 30 000 000 40 140 000 (12 000 000; 56 000 000) 6 000 000 213 000 000
tests::program_messages_to_paused_program_skipped 150 000 000; +229.67% ❗ 45 500 000 59 780 000 (35 500 000; 67 500 000) 23 000 000 252 000 000
tests::replies_to_paused_program_skipped 182 000 000; +435.29% ❗ 34 000 000 44 920 000 (21 000 000; 57 000 000) 13 000 000 228 000 000
tests::restrict_start_section 193 000 000; +601.82% ❗ 27 500 000 40 660 000 (12 000 000; 53 000 000) 5 000 000 204 000 000
tests::resume_program_works 145 000 000; +178.85% ❗ 52 000 000 65 960 000 (38 000 000; 79 500 000) 22 000 000 300 000 000
tests::send_message_expected_failure 103 000 000; +182.19% ❗ 36 500 000 43 480 000 (17 000 000; 59 000 000) 7 000 000 180 000 000
tests::send_message_works 137 000 000; +291.43% ❗ 35 000 000 49 830 000 (16 500 000; 59 500 000) 7 000 000 302 000 000
tests::send_reply_failure_to_claim_from_mailbox 138 000 000; +283.33% ❗ 36 000 000 47 340 000 (21 000 000; 54 500 000) 7 000 000 257 000 000
tests::send_reply_value_claiming_works 136 000 000; +244.30% ❗ 39 500 000 49 270 000 (22 500 000; 53 500 000) 6 000 000 292 000 000
tests::send_reply_works 103 000 000; +171.05% ❗ 38 000 000 46 800 000 (22 000 000; 59 000 000) 6 000 000 255 000 000
tests::spent_gas_to_reward_block_author_works 146 000 000; +370.97% ❗ 31 000 000 45 380 000 (17 500 000; 56 000 000) 7 000 000 295 000 000
tests::submit_program_expected_failure 136 000 000; +325.00% ❗ 32 000 000 44 770 000 (20 500 000; 57 500 000) 6 000 000 175 000 000
tests::submit_program_fails_on_duplicate_id 145 000 000; +314.29% ❗ 35 000 000 50 550 000 (20 500 000; 57 000 000) 6 000 000 336 000 000
tests::test_async_messages 638 000 000; +197.44% ‼️ 214 500 000 247 900 000 (201 500 000; 243 500 000) 165 000 000 595 000 000
tests::test_code_is_not_reset_within_program_submission 120 000 000; +192.68% ❗ 41 000 000 49 350 000 (23 000 000; 67 500 000) 6 000 000 355 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 109 000 000; +202.78% ❗ 36 000 000 48 350 000 (24 500 000; 62 000 000) 6 000 000 268 000 000
tests::test_code_submission_pass 131 000 000; +231.65% ❗ 39 500 000 48 490 000 (24 000 000; 57 500 000) 5 000 000 192 000 000
tests::test_create_program_duplicate 180 000 000; +224.32% ❗ 55 500 000 68 880 000 (43 000 000; 82 500 000) 25 000 000 229 000 000
tests::test_create_program_duplicate_in_one_execution 53 000 000; +12.77% ✔️ 47 000 000 60 430 000 (36 500 000; 77 000 000) 20 000 000 224 000 000
tests::test_create_program_miscellaneous 49 000 000; -23.44% ✔️ 64 000 000 75 010 000 (48 000 000; 83 500 000) 33 000 000 260 000 000
tests::test_create_program_no_code_hash 142 000 000; +48.69% ❗ 95 500 000 114 000 000 (83 000 000; 112 000 000) 60 000 000 498 000 000
tests::test_create_program_simple 91 000 000; +40.00% ❗ 65 000 000 74 330 000 (53 000 000; 81 500 000) 36 000 000 265 000 000
tests::test_create_program_with_exceeding_value 95 000 000; +113.48% ❗ 44 500 000 57 770 000 (28 500 000; 61 000 000) 15 000 000 432 000 000
tests::test_create_program_with_value_lt_ed 40 000 000; -20.00% ✔️ 50 000 000 58 640 000 (38 000 000; 67 500 000) 22 000 000 264 000 000
tests::test_create_program_without_gas_works 90 000 000; +78.22% ❗ 50 500 000 56 090 000 (34 000 000; 67 500 000) 12 000 000 244 000 000
tests::test_message_processing_for_non_existing_destination 89 000 000; +109.41% ❗ 42 500 000 53 270 000 (30 500 000; 66 500 000) 9 000 000 242 000 000
tests::test_reply_to_terminated_program 114 000 000; +135.05% ❗ 48 500 000 59 240 000 (32 000 000; 72 000 000) 15 000 000 292 000 000
tests::test_same_code_submission_fails 90 000 000; +102.25% ❗ 44 500 000 54 860 000 (26 500 000; 66 500 000) 7 000 000 286 000 000
tests::test_two_contracts_composition_works 129 000 000; +65.38% ❗ 78 000 000 91 870 000 (65 000 000; 97 500 000) 44 000 000 328 000 000
tests::uninitialized_program_should_accept_replies 88 000 000; +66.04% ❗ 53 000 000 71 290 000 (42 500 000; 72 000 000) 22 000 000 360 000 000
tests::unstoppable_block_execution_works 87 000 000; +89.13% ❗ 46 000 000 59 400 000 (33 000 000; 67 500 000) 13 000 000 260 000 000
tests::unused_gas_released_back_works 78 000 000; +77.27% ❗ 44 000 000 54 830 000 (30 500 000; 67 000 000) 8 000 000 328 000 000
tests::wake_messages_after_program_inited 128 000 000; +54.22% ❗ 83 000 000 98 330 000 (72 000 000; 102 500 000) 52 000 000 362 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 52 000 000; +40.54% ✔️ 37 000 000 51 020 000 (24 000 000; 63 000 000) 5 000 000 330 000 000
tests::check_changed_pages_in_storage 81 000 000; +82.02% ❗ 44 500 000 53 690 000 (30 500 000; 63 500 000) 7 000 000 200 000 000
tests::debug_mode_works 169 000 000; +284.09% ❗ 44 000 000 59 020 000 (33 000 000; 69 500 000) 13 000 000 296 000 000

name = pallet-gear-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 55 000 000; +37.50% ✔️ 40 000 000 51 050 000 (24 500 000; 67 000 000) 3 000 000 286 000 000
tests::all_keys_are_cleared 78 000 000; +105.26% ❗ 38 000 000 50 390 000 (26 000 000; 58 500 000) 6 000 000 296 000 000
tests::can_cut_nodes 79 000 000; +81.61% ❗ 43 500 000 53 100 000 (28 000 000; 67 000 000) 6 000 000 239 000 000
tests::gas_free_after_consumed 73 000 000; +58.70% ❗ 46 000 000 57 570 000 (29 000 000; 72 000 000) 8 000 000 260 000 000
tests::limit_vs_origin 47 000 000; +8.05% ✔️ 43 500 000 53 970 000 (27 500 000; 67 500 000) 6 000 000 282 000 000
tests::long_chain 72 000 000; +75.61% ❗ 41 000 000 56 170 000 (29 000 000; 65 500 000) 9 000 000 368 000 000
tests::simple_value_tree 111 000 000; +158.14% ❗ 43 000 000 59 450 000 (26 500 000; 65 500 000) 9 000 000 400 000 000
tests::split_with_no_value 174 000 000; +309.41% ❗ 42 500 000 57 980 000 (25 500 000; 62 000 000) 5 000 000 366 000 000
tests::splits_fail 84 000 000; +110.00% ❗ 40 000 000 56 740 000 (27 500 000; 59 500 000) 5 000 000 344 000 000
tests::sub_nodes_tree 86 000 000; +100.00% ❗ 43 000 000 54 870 000 (27 000 000; 62 500 000) 6 000 000 412 000 000
tests::sub_nodes_tree_with_spends 75 000 000; +92.31% ❗ 39 000 000 51 670 000 (25 000 000; 58 000 000) 7 000 000 348 000 000
tests::subtree_gas_limit_remains_intact 138 000 000; +236.59% ❗ 41 000 000 58 720 000 (26 500 000; 64 000 000) 9 000 000 349 000 000
tests::test_consume_procedure 141 000 000; +276.00% ❗ 37 500 000 51 260 000 (23 500 000; 57 000 000) 7 000 000 308 000 000
tests::value_tree_known_errors 41 000 000; +9.33% ✔️ 37 500 000 50 780 000 (22 000 000; 57 500 000) 5 000 000 352 000 000
tests::value_tree_with_all_kinds_of_nodes 115 000 000; +191.14% ❗ 39 500 000 49 850 000 (24 000 000; 58 500 000) 5 000 000 316 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 142 000 000; +283.78% ❗ 37 000 000 45 760 000 (16 000 000; 55 500 000) 4 000 000 328 000 000
tests::dequeued_impl_works_manually 40 000 000; -4.76% ✔️ 42 000 000 49 490 000 (27 000 000; 56 500 000) 5 000 000 240 000 000
tests::queue_processing_impl_works_manually 127 000 000; +234.21% ❗ 38 000 000 43 620 000 (22 500 000; 55 000 000) 7 000 000 196 000 000
tests::queue_works 41 000 000; +12.33% ✔️ 36 500 000 51 020 000 (25 500 000; 61 000 000) 5 000 000 308 000 000
tests::sent_impl_works 162 000 000; +295.12% ❗ 41 000 000 45 710 000 (26 500 000; 52 000 000) 5 000 000 243 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 129 000 000; +258.33% ❗ 36 000 000 43 170 000 (20 500 000; 52 000 000) 3 000 000 327 000 000
tests::custom_fee_multiplier_updated_per_block 114 000 000; +204.00% ❗ 37 500 000 49 060 000 (25 000 000; 53 000 000) 5 000 000 264 000 000
tests::fee_rounding_error_bounded_by_multiplier 97 000 000; +162.16% ❗ 37 000 000 47 500 000 (23 000 000; 52 500 000) 6 000 000 295 000 000
tests::mq_size_affecting_fee_works 48 000 000; +28.00% ✔️ 37 500 000 46 150 000 (24 500 000; 50 000 000) 6 000 000 259 000 000
tests::mq_size_not_affecting_fee_works 46 000 000; +24.32% ✔️ 37 000 000 46 190 000 (23 500 000; 48 000 000) 5 000 000 252 000 000
tests::query_info_and_fee_details_work 158 000 000; +327.03% ❗ 37 000 000 49 190 000 (28 000 000; 51 000 000) 8 000 000 280 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 96 000 000; +195.38% ❗ 32 500 000 44 690 000 (15 000 000; 47 500 000) 4 000 000 301 000 000
tests::pause_program_twice_fails 101 000 000; +180.56% ❗ 36 000 000 50 260 000 (22 500 000; 46 500 000) 6 000 000 284 000 000
tests::pause_program_works 104 000 000; +173.68% ❗ 38 000 000 52 690 000 (30 000 000; 56 500 000) 11 000 000 301 000 000
tests::pause_terminated_program_fails 116 000 000; +222.22% ❗ 36 000 000 45 220 000 (26 500 000; 47 500 000) 4 000 000 232 000 000
tests::pause_uninitialized_program_works 162 000 000; +337.84% ❗ 37 000 000 50 950 000 (27 000 000; 48 000 000) 11 000 000 284 000 000
tests::resume_program_twice_fails 108 000 000; +176.92% ❗ 39 000 000 54 590 000 (31 000 000; 52 500 000) 17 000 000 268 000 000
tests::resume_program_wrong_list_fails 143 000 000; +291.78% ❗ 36 500 000 51 130 000 (30 000 000; 50 000 000) 15 000 000 244 000 000
tests::resume_program_wrong_memory_fails 108 000 000; +191.89% ❗ 37 000 000 48 700 000 (28 000 000; 49 000 000) 14 000 000 260 000 000
tests::resume_uninitialized_program_works 114 000 000; +192.31% ❗ 39 000 000 50 410 000 (28 000 000; 53 500 000) 18 000 000 212 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 26 000 000; -11.86% ✔️ 29 500 000 43 490 000 (21 000 000; 38 500 000) 4 000 000 268 000 000
tests::dust_discarded_with_noop 51 000 000; +56.92% ❗ 32 500 000 47 590 000 (24 000 000; 45 500 000) 7 000 000 264 000 000
tests::external_submitter_gets_rewarded 46 000 000; +43.75% ❗ 32 000 000 46 880 000 (26 000 000; 43 000 000) 10 000 000 272 000 000
tests::gas_properly_handled_for_trap_replies 85 000 000; +188.14% ❗ 29 500 000 42 910 000 (23 500 000; 44 000 000) 8 000 000 212 000 000
tests::ocw_double_charge 82 000 000; +182.76% ❗ 29 000 000 42 600 000 (21 000 000; 44 000 000) 5 000 000 207 000 000
tests::ocw_interval_maintained 30 000 000; -3.23% ✔️ 31 000 000 42 060 000 (23 000 000; 42 000 000) 7 000 000 257 000 000
tests::ocw_interval_stretches_for_large_wait_list 84 000 000; +184.75% ❗ 29 500 000 41 940 000 (22 000 000; 42 000 000) 7 000 000 192 000 000
tests::ocw_overlapping_prevented 83 000 000; +196.43% ❗ 28 000 000 40 490 000 (19 500 000; 36 500 000) 6 000 000 248 000 000
tests::rent_charge_works 31 000 000; +10.71% ✔️ 28 000 000 39 940 000 (18 500 000; 37 500 000) 9 000 000 173 000 000
tests::trap_reply_message_is_sent 147 000 000; +444.44% ❗ 27 000 000 39 410 000 (18 000 000; 37 500 000) 6 000 000 208 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 127 081 554 829; +84.32% ‼️ 68 944 986 412 68 935 243 098 (68 757 923 556; 69 084 931 792) 68 468 727 241 69 594 676 861

name = Async RwLock

name current median average lower/upper quartile min max
check readers 827 940 951; +896.11% ‼️ 83 117 557 83 644 149 (81 045 159; 86 423 397) 74 649 155 94 266 987
forever lock 909 332 586; +942.13% ‼️ 87 257 515 88 378 652 (84 648 129; 91 181 326) 79 257 738 105 856 224
read while writing 1 666 152 723; +1541.52% ‼️ 101 500 801 102 983 935 (97 451 764; 108 087 513) 90 578 254 122 270 524
rwlock wide 2 296 941 392; +1754.59% ‼️ 123 851 697 128 419 384 (118 451 998; 134 983 536) 107 355 094 173 640 120
write while reading 1 752 677 517; +1537.07% ‼️ 107 062 085 109 343 141 (102 268 082; 114 118 092) 95 128 205 136 288 551

name = Async init

name current median average lower/upper quartile min max
approved pong 12 328 501 097; +18.37% ‼️ 10 415 082 102 10 416 381 364 (10 380 035 173; 10 451 635 773) 10 185 550 808 10 576 867 206

name = Async-await

name current median average lower/upper quartile min max
normal 657 149 210; +882.45% ‼️ 66 889 051 67 078 420 (62 853 648; 71 848 851) 50 909 778 81 048 490
panic 684 220 553; +899.90% ‼️ 68 428 804 69 027 857 (66 034 078; 73 397 478) 57 314 227 80 845 019

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 1 221 950 937; +1243.59% ‼️ 90 946 559 91 903 733 (88 165 840; 95 289 667) 81 729 763 108 929 028

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; eve doesn't answer, alice replies with incorrect payload 7 901 779 436; +60.97% ‼️ 4 908 716 743 4 905 372 995 (4 880 127 952; 4 928 889 001) 4 805 517 032 5 002 477 296
2 of 3; no replies 6 172 065 102; +27.61% ‼️ 4 836 809 663 4 835 703 421 (4 816 713 313; 4 855 621 446) 4 730 286 427 4 912 078 446
Single signatory & zero threshold 6 202 383 502; +26.41% ‼️ 4 906 662 049 4 902 092 037 (4 881 092 145; 4 929 047 123) 4 806 116 008 4 973 841 875
Three signatories; Bob replies with incorrect signature 7 952 339 515; +61.59% ‼️ 4 921 339 562 4 918 106 971 (4 891 404 421; 4 943 999 450) 4 831 031 587 5 064 713 317
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 5 808 454 188; +18.24% ‼️ 4 912 278 545 4 909 460 160 (4 887 212 084; 4 935 659 575) 4 772 734 924 5 045 636 790

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 3 649 725 864; +49.48% ‼️ 2 441 581 299 2 442 938 795 (2 430 325 489; 2 456 798 952) 2 367 951 219 2 515 047 390
correct signature but for another message 3 420 290 893; +36.83% ‼️ 2 499 646 971 2 496 065 213 (2 472 875 077; 2 520 571 557) 2 419 910 096 2 564 951 462
no reply 3 551 030 009; +46.10% ‼️ 2 430 530 415 2 428 168 049 (2 409 904 099; 2 442 638 270) 2 365 212 383 2 524 863 238
signed message 3 275 528 529; +30.89% ‼️ 2 502 431 344 2 502 579 209 (2 484 511 123; 2 521 987 689) 2 417 845 345 2 585 816 748

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 752 135 083; +899.86% ‼️ 75 224 081 75 239 379 (71 325 459; 78 970 829) 61 862 255 90 145 689

name = Decoder

name current median average lower/upper quartile min max
decoder 579 214 863; +748.44% ‼️ 68 268 175 67 562 580 (64 255 607; 71 567 204) 51 903 675 79 146 674

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 2 694 579 506; +1760.12% ‼️ 144 860 661 149 647 315 (138 173 393; 157 911 535) 128 829 831 201 371 071
join 2 603 078 696; +1647.48% ‼️ 148 961 753 153 461 754 (139 478 460; 162 862 728) 128 937 746 202 612 184
select 2 523 219 769; +1663.06% ‼️ 143 115 671 148 073 122 (135 022 107; 159 956 519) 125 984 685 189 633 744

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 2 395 737 879; +1754.60% ‼️ 129 177 883 133 602 221 (121 105 592; 143 290 627) 114 583 828 171 733 298

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 447 030 725; +537.74% ‼️ 70 095 658 70 509 199 (65 669 408; 74 876 974) 55 454 688 88 129 348

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 761 877 976; +877.88% ‼️ 77 911 027 77 997 956 (75 896 189; 79 804 488) 71 531 101 86 618 036

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 11 430 743 239; +18.40% ‼️ 9 654 293 368 9 656 271 236 (9 626 355 815; 9 689 120 046) 9 531 410 718 9 774 165 317

name = Multiping

name current median average lower/upper quartile min max
multiping 482 848 488; +673.71% ‼️ 62 406 715 63 312 738 (59 292 792; 67 697 281) 51 700 762 78 405 255

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 366 276 587; +502.23% ‼️ 60 820 213 61 413 659 (57 058 012; 66 018 895) 49 426 842 74 010 987
ping-pong wgas 686 066 676; +884.32% ‼️ 69 699 372 68 914 041 (65 127 173; 72 245 627) 54 666 193 80 896 150

name = Program_id test

name current median average lower/upper quartile min max
program_id 384 690 399; +578.39% ‼️ 56 706 682 58 280 079 (53 760 577; 62 895 438) 48 876 905 72 458 901

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 719 114 387; +954.98% ‼️ 68 163 521 68 361 315 (63 067 510; 73 270 624) 55 802 529 81 615 176
state-saving 712 794 322; +963.78% ‼️ 67 006 111 67 349 850 (61 620 236; 72 698 812) 56 012 588 84 449 978

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 321 919 840; +385.56% ‼️ 66 298 899 65 997 874 (62 169 977; 69 845 672) 53 736 547 83 440 669
Try to re-init existing program 776 178 268; +914.06% ‼️ 76 541 444 75 851 640 (71 196 869; 79 682 051) 64 428 439 86 959 810

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 247 222 861; +456.22% ‼️ 44 447 240 44 856 490 (42 047 569; 46 472 609) 37 615 643 63 052 403

name = Wait test

name current median average lower/upper quartile min max
wait 821 479 002; +1071.53% ‼️ 70 120 118 71 034 685 (65 779 609; 75 281 004) 56 837 879 88 564 230

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 850 056 279; +685.63% ‼️ 108 200 278 110 411 506 (103 386 922; 117 218 926) 95 656 257 139 037 498

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 786 428 776; +944.26% ‼️ 75 309 792 76 414 691 (73 311 561; 79 719 020) 65 596 511 86 660 849

name = guestbook test

name current median average lower/upper quartile min max
guestbook 5 452 627 477; +14.80% ‼️ 4 749 685 899 4 750 545 045 (4 719 091 104; 4 774 636 683) 4 658 610 646 4 857 933 056

name = gui test

name current median average lower/upper quartile min max
gui 7 427 057 306; +15.94% ‼️ 6 406 179 034 6 402 888 458 (6 380 311 210; 6 424 931 982) 6 279 084 233 6 483 845 358
a42bd09
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 62 636 000 000; +4933.03% ❗ 1 244 500 000 2 371 709 999 (1 224 000 000; 1 406 000 000) 1 183 000 000 82 822 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 63 000 000; +687.50% ❗ 8 000 000 29 970 000 (5 000 000; 20 500 000) 4 000 000 688 000 000
schedule::test::print_test_schedule 53 000 000; +457.89% ❗ 9 500 000 33 240 000 (6 000 000; 19 000 000) 3 000 000 748 000 000
tests::call_forbidden_function 44 000 000; +183.87% ❗ 15 500 000 33 830 000 (9 500 000; 27 500 000) 6 000 000 732 000 000
tests::cascading_messages_with_value_do_not_overcharge 149 000 000; +72.25% ❗ 86 500 000 105 270 000 (73 000 000; 105 000 000) 58 000 000 752 000 000
tests::defer_program_initialization 79 000 000; +139.39% ❗ 33 000 000 55 190 000 (26 000 000; 52 000 000) 21 000 000 756 000 000
tests::distributor_distribute 64 000 000; +137.04% ❗ 27 000 000 43 960 000 (20 000 000; 39 500 000) 15 000 000 768 000 000
tests::distributor_initialize 57 000 000; +171.43% ❗ 21 000 000 37 060 000 (14 000 000; 36 000 000) 9 000 000 368 000 000
tests::events_logging_works 75 000 000; +265.85% ❗ 20 500 000 43 080 000 (14 000 000; 35 000 000) 8 000 000 720 000 000
tests::exit_handle 77 000 000; +266.67% ❗ 21 000 000 39 680 000 (13 000 000; 38 500 000) 6 000 000 294 000 000
tests::exit_init 58 000 000; +123.08% ❗ 26 000 000 48 350 000 (19 000 000; 51 000 000) 12 000 000 248 000 000
tests::gas_spent_precalculated 131 000 000; +539.02% ❗ 20 500 000 33 920 000 (11 500 000; 37 000 000) 7 000 000 320 000 000
tests::gas_spent_vs_balance 100 000 000; +85.19% ❗ 54 000 000 68 170 000 (42 500 000; 72 000 000) 29 000 000 304 000 000
tests::init_message_logging_works 75 000 000; +265.85% ❗ 20 500 000 34 980 000 (12 500 000; 38 500 000) 6 000 000 205 000 000
tests::init_wait_reply_exit_cleaned_storage 106 000 000; +146.51% ❗ 43 000 000 53 610 000 (29 000 000; 59 000 000) 22 000 000 196 000 000
tests::lazy_pages 88 000 000; +291.11% ❗ 22 500 000 36 250 000 (13 000 000; 41 500 000) 7 000 000 240 000 000
tests::mailbox_threshold_works 109 000 000; +172.50% ❗ 40 000 000 51 400 000 (31 000 000; 53 500 000) 21 000 000 215 000 000
tests::mailbox_works 30 000 000; +42.86% ✔️ 21 000 000 38 860 000 (12 000 000; 41 500 000) 6 000 000 276 000 000
tests::memory_access_cases 51 000 000; +85.45% ❗ 27 500 000 42 660 000 (11 500 000; 49 500 000) 6 000 000 216 000 000
tests::messages_processing_works 25 000 000; +0.00% ✔️ 25 000 000 41 980 000 (11 000 000; 51 500 000) 7 000 000 223 000 000
tests::messages_to_paused_program_skipped 61 000 000; +93.65% ❗ 31 500 000 43 680 000 (18 000 000; 55 000 000) 12 000 000 167 000 000
tests::messages_to_uninitialized_program_wait 90 000 000; +221.43% ❗ 28 000 000 41 290 000 (17 500 000; 48 000 000) 12 000 000 202 000 000
tests::no_redundant_gas_value_after_exiting 57 000 000; +83.87% ❗ 31 000 000 42 420 000 (14 500 000; 50 000 000) 7 000 000 236 000 000
tests::paused_program_keeps_id 88 000 000; +137.84% ❗ 37 000 000 54 040 000 (21 500 000; 58 500 000) 14 000 000 388 000 000
tests::program_lifecycle_works 76 000 000; +153.33% ❗ 30 000 000 40 140 000 (12 000 000; 56 000 000) 6 000 000 213 000 000
tests::program_messages_to_paused_program_skipped 55 000 000; +20.88% ✔️ 45 500 000 59 780 000 (35 500 000; 67 500 000) 23 000 000 252 000 000
tests::replies_to_paused_program_skipped 73 000 000; +114.71% ❗ 34 000 000 44 920 000 (21 000 000; 57 000 000) 13 000 000 228 000 000
tests::restrict_start_section 124 000 000; +350.91% ❗ 27 500 000 40 660 000 (12 000 000; 53 000 000) 5 000 000 204 000 000
tests::resume_program_works 82 000 000; +57.69% ❗ 52 000 000 65 960 000 (38 000 000; 79 500 000) 22 000 000 300 000 000
tests::send_message_expected_failure 63 000 000; +72.60% ❗ 36 500 000 43 480 000 (17 000 000; 59 000 000) 7 000 000 180 000 000
tests::send_message_works 40 000 000; +14.29% ✔️ 35 000 000 49 830 000 (16 500 000; 59 500 000) 7 000 000 302 000 000
tests::send_reply_failure_to_claim_from_mailbox 107 000 000; +197.22% ❗ 36 000 000 47 340 000 (21 000 000; 54 500 000) 7 000 000 257 000 000
tests::send_reply_value_claiming_works 24 000 000; -39.24% ✔️ 39 500 000 49 270 000 (22 500 000; 53 500 000) 6 000 000 292 000 000
tests::send_reply_works 20 000 000; -47.37% ✔️ 38 000 000 46 800 000 (22 000 000; 59 000 000) 6 000 000 255 000 000
tests::spent_gas_to_reward_block_author_works 40 000 000; +29.03% ✔️ 31 000 000 45 380 000 (17 500 000; 56 000 000) 7 000 000 295 000 000
tests::submit_program_expected_failure 33 000 000; +3.12% ✔️ 32 000 000 44 770 000 (20 500 000; 57 500 000) 6 000 000 175 000 000
tests::submit_program_fails_on_duplicate_id 35 000 000; +0.00% ✔️ 35 000 000 50 550 000 (20 500 000; 57 000 000) 6 000 000 336 000 000
tests::test_async_messages 478 000 000; +122.84% ❗ 214 500 000 247 900 000 (201 500 000; 243 500 000) 165 000 000 595 000 000
tests::test_code_is_not_reset_within_program_submission 90 000 000; +119.51% ❗ 41 000 000 49 350 000 (23 000 000; 67 500 000) 6 000 000 355 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 27 000 000; -25.00% ✔️ 36 000 000 48 350 000 (24 500 000; 62 000 000) 6 000 000 268 000 000
tests::test_code_submission_pass 64 000 000; +62.03% ❗ 39 500 000 48 490 000 (24 000 000; 57 500 000) 5 000 000 192 000 000
tests::test_create_program_duplicate 53 000 000; -4.50% ✔️ 55 500 000 68 880 000 (43 000 000; 82 500 000) 25 000 000 229 000 000
tests::test_create_program_duplicate_in_one_execution 66 000 000; +40.43% ✔️ 47 000 000 60 430 000 (36 500 000; 77 000 000) 20 000 000 224 000 000
tests::test_create_program_miscellaneous 61 000 000; -4.69% ✔️ 64 000 000 75 010 000 (48 000 000; 83 500 000) 33 000 000 260 000 000
tests::test_create_program_no_code_hash 222 000 000; +132.46% ❗ 95 500 000 114 000 000 (83 000 000; 112 000 000) 60 000 000 498 000 000
tests::test_create_program_simple 286 000 000; +340.00% ‼️ 65 000 000 74 330 000 (53 000 000; 81 500 000) 36 000 000 265 000 000
tests::test_create_program_with_exceeding_value 62 000 000; +39.33% ❗ 44 500 000 57 770 000 (28 500 000; 61 000 000) 15 000 000 432 000 000
tests::test_create_program_with_value_lt_ed 67 000 000; +34.00% ✔️ 50 000 000 58 640 000 (38 000 000; 67 500 000) 22 000 000 264 000 000
tests::test_create_program_without_gas_works 75 000 000; +48.51% ❗ 50 500 000 56 090 000 (34 000 000; 67 500 000) 12 000 000 244 000 000
tests::test_message_processing_for_non_existing_destination 62 000 000; +45.88% ✔️ 42 500 000 53 270 000 (30 500 000; 66 500 000) 9 000 000 242 000 000
tests::test_reply_to_terminated_program 71 000 000; +46.39% ✔️ 48 500 000 59 240 000 (32 000 000; 72 000 000) 15 000 000 292 000 000
tests::test_same_code_submission_fails 20 000 000; -55.06% ✔️ 44 500 000 54 860 000 (26 500 000; 66 500 000) 7 000 000 286 000 000
tests::test_two_contracts_composition_works 176 000 000; +125.64% ❗ 78 000 000 91 870 000 (65 000 000; 97 500 000) 44 000 000 328 000 000
tests::uninitialized_program_should_accept_replies 148 000 000; +179.25% ❗ 53 000 000 71 290 000 (42 500 000; 72 000 000) 22 000 000 360 000 000
tests::unstoppable_block_execution_works 62 000 000; +34.78% ✔️ 46 000 000 59 400 000 (33 000 000; 67 500 000) 13 000 000 260 000 000
tests::unused_gas_released_back_works 65 000 000; +47.73% ✔️ 44 000 000 54 830 000 (30 500 000; 67 000 000) 8 000 000 328 000 000
tests::wake_messages_after_program_inited 217 000 000; +161.45% ❗ 83 000 000 98 330 000 (72 000 000; 102 500 000) 52 000 000 362 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 31 000 000; -16.22% ✔️ 37 000 000 51 020 000 (24 000 000; 63 000 000) 5 000 000 330 000 000
tests::check_changed_pages_in_storage 48 000 000; +7.87% ✔️ 44 500 000 53 690 000 (30 500 000; 63 500 000) 7 000 000 200 000 000
tests::debug_mode_works 52 000 000; +18.18% ✔️ 44 000 000 59 020 000 (33 000 000; 69 500 000) 13 000 000 296 000 000

name = pallet-gear-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 29 000 000; -27.50% ✔️ 40 000 000 51 050 000 (24 500 000; 67 000 000) 3 000 000 286 000 000
tests::all_keys_are_cleared 46 000 000; +21.05% ✔️ 38 000 000 50 390 000 (26 000 000; 58 500 000) 6 000 000 296 000 000
tests::can_cut_nodes 178 000 000; +309.20% ❗ 43 500 000 53 100 000 (28 000 000; 67 000 000) 6 000 000 239 000 000
tests::gas_free_after_consumed 32 000 000; -30.43% ✔️ 46 000 000 57 570 000 (29 000 000; 72 000 000) 8 000 000 260 000 000
tests::limit_vs_origin 216 000 000; +396.55% ❗ 43 500 000 53 970 000 (27 500 000; 67 500 000) 6 000 000 282 000 000
tests::long_chain 42 000 000; +2.44% ✔️ 41 000 000 56 170 000 (29 000 000; 65 500 000) 9 000 000 368 000 000
tests::simple_value_tree 120 000 000; +179.07% ❗ 43 000 000 59 450 000 (26 500 000; 65 500 000) 9 000 000 400 000 000
tests::split_with_no_value 234 000 000; +450.59% ❗ 42 500 000 57 980 000 (25 500 000; 62 000 000) 5 000 000 366 000 000
tests::splits_fail 229 000 000; +472.50% ❗ 40 000 000 56 740 000 (27 500 000; 59 500 000) 5 000 000 344 000 000
tests::sub_nodes_tree 291 000 000; +576.74% ❗ 43 000 000 54 870 000 (27 000 000; 62 500 000) 6 000 000 412 000 000
tests::sub_nodes_tree_with_spends 228 000 000; +484.62% ❗ 39 000 000 51 670 000 (25 000 000; 58 000 000) 7 000 000 348 000 000
tests::subtree_gas_limit_remains_intact 168 000 000; +309.76% ❗ 41 000 000 58 720 000 (26 500 000; 64 000 000) 9 000 000 349 000 000
tests::test_consume_procedure 218 000 000; +481.33% ❗ 37 500 000 51 260 000 (23 500 000; 57 000 000) 7 000 000 308 000 000
tests::value_tree_known_errors 227 000 000; +505.33% ❗ 37 500 000 50 780 000 (22 000 000; 57 500 000) 5 000 000 352 000 000
tests::value_tree_with_all_kinds_of_nodes 217 000 000; +449.37% ❗ 39 500 000 49 850 000 (24 000 000; 58 500 000) 5 000 000 316 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 217 000 000; +486.49% ❗ 37 000 000 45 760 000 (16 000 000; 55 500 000) 4 000 000 328 000 000
tests::dequeued_impl_works_manually 210 000 000; +400.00% ❗ 42 000 000 49 490 000 (27 000 000; 56 500 000) 5 000 000 240 000 000
tests::queue_processing_impl_works_manually 210 000 000; +452.63% ‼️ 38 000 000 43 620 000 (22 500 000; 55 000 000) 7 000 000 196 000 000
tests::queue_works 203 000 000; +456.16% ❗ 36 500 000 51 020 000 (25 500 000; 61 000 000) 5 000 000 308 000 000
tests::sent_impl_works 213 000 000; +419.51% ❗ 41 000 000 45 710 000 (26 500 000; 52 000 000) 5 000 000 243 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 127 000 000; +252.78% ❗ 36 000 000 43 170 000 (20 500 000; 52 000 000) 3 000 000 327 000 000
tests::custom_fee_multiplier_updated_per_block 215 000 000; +473.33% ❗ 37 500 000 49 060 000 (25 000 000; 53 000 000) 5 000 000 264 000 000
tests::fee_rounding_error_bounded_by_multiplier 197 000 000; +432.43% ❗ 37 000 000 47 500 000 (23 000 000; 52 500 000) 6 000 000 295 000 000
tests::mq_size_affecting_fee_works 198 000 000; +428.00% ❗ 37 500 000 46 150 000 (24 500 000; 50 000 000) 6 000 000 259 000 000
tests::mq_size_not_affecting_fee_works 199 000 000; +437.84% ❗ 37 000 000 46 190 000 (23 500 000; 48 000 000) 5 000 000 252 000 000
tests::query_info_and_fee_details_work 195 000 000; +427.03% ❗ 37 000 000 49 190 000 (28 000 000; 51 000 000) 8 000 000 280 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 106 000 000; +226.15% ❗ 32 500 000 44 690 000 (15 000 000; 47 500 000) 4 000 000 301 000 000
tests::pause_program_twice_fails 89 000 000; +147.22% ❗ 36 000 000 50 260 000 (22 500 000; 46 500 000) 6 000 000 284 000 000
tests::pause_program_works 132 000 000; +247.37% ❗ 38 000 000 52 690 000 (30 000 000; 56 500 000) 11 000 000 301 000 000
tests::pause_terminated_program_fails 76 000 000; +111.11% ❗ 36 000 000 45 220 000 (26 500 000; 47 500 000) 4 000 000 232 000 000
tests::pause_uninitialized_program_works 91 000 000; +145.95% ❗ 37 000 000 50 950 000 (27 000 000; 48 000 000) 11 000 000 284 000 000
tests::resume_program_twice_fails 64 000 000; +64.10% ❗ 39 000 000 54 590 000 (31 000 000; 52 500 000) 17 000 000 268 000 000
tests::resume_program_wrong_list_fails 128 000 000; +250.68% ❗ 36 500 000 51 130 000 (30 000 000; 50 000 000) 15 000 000 244 000 000
tests::resume_program_wrong_memory_fails 115 000 000; +210.81% ❗ 37 000 000 48 700 000 (28 000 000; 49 000 000) 14 000 000 260 000 000
tests::resume_uninitialized_program_works 103 000 000; +164.10% ❗ 39 000 000 50 410 000 (28 000 000; 53 500 000) 18 000 000 212 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 47 000 000; +59.32% ❗ 29 500 000 43 490 000 (21 000 000; 38 500 000) 4 000 000 268 000 000
tests::dust_discarded_with_noop 111 000 000; +241.54% ❗ 32 500 000 47 590 000 (24 000 000; 45 500 000) 7 000 000 264 000 000
tests::external_submitter_gets_rewarded 102 000 000; +218.75% ❗ 32 000 000 46 880 000 (26 000 000; 43 000 000) 10 000 000 272 000 000
tests::gas_properly_handled_for_trap_replies 101 000 000; +242.37% ❗ 29 500 000 42 910 000 (23 500 000; 44 000 000) 8 000 000 212 000 000
tests::ocw_double_charge 91 000 000; +213.79% ❗ 29 000 000 42 600 000 (21 000 000; 44 000 000) 5 000 000 207 000 000
tests::ocw_interval_maintained 79 000 000; +154.84% ❗ 31 000 000 42 060 000 (23 000 000; 42 000 000) 7 000 000 257 000 000
tests::ocw_interval_stretches_for_large_wait_list 84 000 000; +184.75% ❗ 29 500 000 41 940 000 (22 000 000; 42 000 000) 7 000 000 192 000 000
tests::ocw_overlapping_prevented 71 000 000; +153.57% ❗ 28 000 000 40 490 000 (19 500 000; 36 500 000) 6 000 000 248 000 000
tests::rent_charge_works 68 000 000; +142.86% ❗ 28 000 000 39 940 000 (18 500 000; 37 500 000) 9 000 000 173 000 000
tests::trap_reply_message_is_sent 79 000 000; +192.59% ❗ 27 000 000 39 410 000 (18 000 000; 37 500 000) 6 000 000 208 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 168 624 331 187; +144.58% ‼️ 68 944 986 412 68 935 243 098 (68 757 923 556; 69 084 931 792) 68 468 727 241 69 594 676 861

name = Async RwLock

name current median average lower/upper quartile min max
check readers 480 797 453; +478.45% ‼️ 83 117 557 83 644 149 (81 045 159; 86 423 397) 74 649 155 94 266 987
forever lock 1 007 167 989; +1054.25% ‼️ 87 257 515 88 378 652 (84 648 129; 91 181 326) 79 257 738 105 856 224
read while writing 1 358 286 248; +1238.20% ‼️ 101 500 801 102 983 935 (97 451 764; 108 087 513) 90 578 254 122 270 524
rwlock wide 2 477 508 570; +1900.38% ‼️ 123 851 697 128 419 384 (118 451 998; 134 983 536) 107 355 094 173 640 120
write while reading 1 477 238 070; +1279.80% ‼️ 107 062 085 109 343 141 (102 268 082; 114 118 092) 95 128 205 136 288 551

name = Async init

name current median average lower/upper quartile min max
approved pong 14 625 402 932; +40.43% ‼️ 10 415 082 102 10 416 381 364 (10 380 035 173; 10 451 635 773) 10 185 550 808 10 576 867 206

name = Async-await

name current median average lower/upper quartile min max
normal 803 487 501; +1101.22% ‼️ 66 889 051 67 078 420 (62 853 648; 71 848 851) 50 909 778 81 048 490
panic 860 503 861; +1157.52% ‼️ 68 428 804 69 027 857 (66 034 078; 73 397 478) 57 314 227 80 845 019

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 834 160 462; +817.20% ‼️ 90 946 559 91 903 733 (88 165 840; 95 289 667) 81 729 763 108 929 028

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; eve doesn't answer, alice replies with incorrect payload 13 064 536 325; +166.15% ‼️ 4 908 716 743 4 905 372 995 (4 880 127 952; 4 928 889 001) 4 805 517 032 5 002 477 296
2 of 3; no replies 7 791 270 877; +61.08% ‼️ 4 836 809 663 4 835 703 421 (4 816 713 313; 4 855 621 446) 4 730 286 427 4 912 078 446
Single signatory & zero threshold 13 168 573 676; +168.38% ‼️ 4 906 662 049 4 902 092 037 (4 881 092 145; 4 929 047 123) 4 806 116 008 4 973 841 875
Three signatories; Bob replies with incorrect signature 13 148 993 010; +167.18% ‼️ 4 921 339 562 4 918 106 971 (4 891 404 421; 4 943 999 450) 4 831 031 587 5 064 713 317
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 9 570 162 062; +94.82% ‼️ 4 912 278 545 4 909 460 160 (4 887 212 084; 4 935 659 575) 4 772 734 924 5 045 636 790

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 5 196 692 530; +112.84% ‼️ 2 441 581 299 2 442 938 795 (2 430 325 489; 2 456 798 952) 2 367 951 219 2 515 047 390
correct signature but for another message 5 147 522 419; +105.93% ‼️ 2 499 646 971 2 496 065 213 (2 472 875 077; 2 520 571 557) 2 419 910 096 2 564 951 462
no reply 5 206 061 075; +114.19% ‼️ 2 430 530 415 2 428 168 049 (2 409 904 099; 2 442 638 270) 2 365 212 383 2 524 863 238
signed message 5 254 186 616; +109.96% ‼️ 2 502 431 344 2 502 579 209 (2 484 511 123; 2 521 987 689) 2 417 845 345 2 585 816 748

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 879 730 891; +1069.48% ‼️ 75 224 081 75 239 379 (71 325 459; 78 970 829) 61 862 255 90 145 689

name = Decoder

name current median average lower/upper quartile min max
decoder 981 879 211; +1338.27% ‼️ 68 268 175 67 562 580 (64 255 607; 71 567 204) 51 903 675 79 146 674

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 2 611 485 024; +1702.76% ‼️ 144 860 661 149 647 315 (138 173 393; 157 911 535) 128 829 831 201 371 071
join 2 557 941 983; +1617.18% ‼️ 148 961 753 153 461 754 (139 478 460; 162 862 728) 128 937 746 202 612 184
select 2 557 090 039; +1686.73% ‼️ 143 115 671 148 073 122 (135 022 107; 159 956 519) 125 984 685 189 633 744

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 2 252 143 833; +1643.44% ‼️ 129 177 883 133 602 221 (121 105 592; 143 290 627) 114 583 828 171 733 298

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 502 361 540; +616.68% ‼️ 70 095 658 70 509 199 (65 669 408; 74 876 974) 55 454 688 88 129 348

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 756 912 802; +871.51% ‼️ 77 911 027 77 997 956 (75 896 189; 79 804 488) 71 531 101 86 618 036

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 14 443 017 189; +49.60% ‼️ 9 654 293 368 9 656 271 236 (9 626 355 815; 9 689 120 046) 9 531 410 718 9 774 165 317

name = Multiping

name current median average lower/upper quartile min max
multiping 705 468 722; +1030.44% ‼️ 62 406 715 63 312 738 (59 292 792; 67 697 281) 51 700 762 78 405 255

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 375 947 577; +518.13% ‼️ 60 820 213 61 413 659 (57 058 012; 66 018 895) 49 426 842 74 010 987
ping-pong wgas 953 752 044; +1268.38% ‼️ 69 699 372 68 914 041 (65 127 173; 72 245 627) 54 666 193 80 896 150

name = Program_id test

name current median average lower/upper quartile min max
program_id 640 634 079; +1029.73% ‼️ 56 706 682 58 280 079 (53 760 577; 62 895 438) 48 876 905 72 458 901

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 637 064 887; +834.61% ‼️ 68 163 521 68 361 315 (63 067 510; 73 270 624) 55 802 529 81 615 176
state-saving 575 351 649; +758.66% ‼️ 67 006 111 67 349 850 (61 620 236; 72 698 812) 56 012 588 84 449 978

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 800 336 927; +1107.16% ‼️ 66 298 899 65 997 874 (62 169 977; 69 845 672) 53 736 547 83 440 669
Try to re-init existing program 1 029 087 087; +1244.48% ‼️ 76 541 444 75 851 640 (71 196 869; 79 682 051) 64 428 439 86 959 810

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 283 012 469; +536.74% ‼️ 44 447 240 44 856 490 (42 047 569; 46 472 609) 37 615 643 63 052 403

name = Wait test

name current median average lower/upper quartile min max
wait 742 081 748; +958.30% ‼️ 70 120 118 71 034 685 (65 779 609; 75 281 004) 56 837 879 88 564 230

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 1 752 974 221; +1520.12% ‼️ 108 200 278 110 411 506 (103 386 922; 117 218 926) 95 656 257 139 037 498

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 978 636 083; +1199.48% ‼️ 75 309 792 76 414 691 (73 311 561; 79 719 020) 65 596 511 86 660 849

name = guestbook test

name current median average lower/upper quartile min max
guestbook 7 453 998 583; +56.94% ‼️ 4 749 685 899 4 750 545 045 (4 719 091 104; 4 774 636 683) 4 658 610 646 4 857 933 056

name = gui test

name current median average lower/upper quartile min max
gui 9 561 587 857; +49.26% ‼️ 6 406 179 034 6 402 888 458 (6 380 311 210; 6 424 931 982) 6 279 084 233 6 483 845 358
268bb66
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 51 753 000 000; +4058.54% ❗ 1 244 500 000 2 371 709 999 (1 224 000 000; 1 406 000 000) 1 183 000 000 82 822 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 32 000 000; +300.00% ❗ 8 000 000 29 970 000 (5 000 000; 20 500 000) 4 000 000 688 000 000
schedule::test::print_test_schedule 63 000 000; +563.16% ❗ 9 500 000 33 240 000 (6 000 000; 19 000 000) 3 000 000 748 000 000
tests::call_forbidden_function 16 000 000; +3.23% ✔️ 15 500 000 33 830 000 (9 500 000; 27 500 000) 6 000 000 732 000 000
tests::cascading_messages_with_value_do_not_overcharge 206 000 000; +138.15% ❗ 86 500 000 105 270 000 (73 000 000; 105 000 000) 58 000 000 752 000 000
tests::defer_program_initialization 94 000 000; +184.85% ❗ 33 000 000 55 190 000 (26 000 000; 52 000 000) 21 000 000 756 000 000
tests::distributor_distribute 103 000 000; +281.48% ❗ 27 000 000 43 960 000 (20 000 000; 39 500 000) 15 000 000 768 000 000
tests::distributor_initialize 20 000 000; -4.76% ✔️ 21 000 000 37 060 000 (14 000 000; 36 000 000) 9 000 000 368 000 000
tests::events_logging_works 83 000 000; +304.88% ❗ 20 500 000 43 080 000 (14 000 000; 35 000 000) 8 000 000 720 000 000
tests::exit_handle 52 000 000; +147.62% ❗ 21 000 000 39 680 000 (13 000 000; 38 500 000) 6 000 000 294 000 000
tests::exit_init 61 000 000; +134.62% ❗ 26 000 000 48 350 000 (19 000 000; 51 000 000) 12 000 000 248 000 000
tests::gas_spent_precalculated 72 000 000; +251.22% ❗ 20 500 000 33 920 000 (11 500 000; 37 000 000) 7 000 000 320 000 000
tests::gas_spent_vs_balance 123 000 000; +127.78% ❗ 54 000 000 68 170 000 (42 500 000; 72 000 000) 29 000 000 304 000 000
tests::init_message_logging_works 81 000 000; +295.12% ❗ 20 500 000 34 980 000 (12 500 000; 38 500 000) 6 000 000 205 000 000
tests::init_wait_reply_exit_cleaned_storage 113 000 000; +162.79% ❗ 43 000 000 53 610 000 (29 000 000; 59 000 000) 22 000 000 196 000 000
tests::lazy_pages 74 000 000; +228.89% ❗ 22 500 000 36 250 000 (13 000 000; 41 500 000) 7 000 000 240 000 000
tests::mailbox_threshold_works 106 000 000; +165.00% ❗ 40 000 000 51 400 000 (31 000 000; 53 500 000) 21 000 000 215 000 000
tests::mailbox_works 32 000 000; +52.38% ✔️ 21 000 000 38 860 000 (12 000 000; 41 500 000) 6 000 000 276 000 000
tests::memory_access_cases 95 000 000; +245.45% ❗ 27 500 000 42 660 000 (11 500 000; 49 500 000) 6 000 000 216 000 000
tests::messages_processing_works 127 000 000; +408.00% ❗ 25 000 000 41 980 000 (11 000 000; 51 500 000) 7 000 000 223 000 000
tests::messages_to_paused_program_skipped 149 000 000; +373.02% ❗ 31 500 000 43 680 000 (18 000 000; 55 000 000) 12 000 000 167 000 000
tests::messages_to_uninitialized_program_wait 104 000 000; +271.43% ❗ 28 000 000 41 290 000 (17 500 000; 48 000 000) 12 000 000 202 000 000
tests::no_redundant_gas_value_after_exiting 67 000 000; +116.13% ❗ 31 000 000 42 420 000 (14 500 000; 50 000 000) 7 000 000 236 000 000
tests::paused_program_keeps_id 118 000 000; +218.92% ❗ 37 000 000 54 040 000 (21 500 000; 58 500 000) 14 000 000 388 000 000
tests::program_lifecycle_works 85 000 000; +183.33% ❗ 30 000 000 40 140 000 (12 000 000; 56 000 000) 6 000 000 213 000 000
tests::program_messages_to_paused_program_skipped 185 000 000; +306.59% ❗ 45 500 000 59 780 000 (35 500 000; 67 500 000) 23 000 000 252 000 000
tests::replies_to_paused_program_skipped 100 000 000; +194.12% ❗ 34 000 000 44 920 000 (21 000 000; 57 000 000) 13 000 000 228 000 000
tests::restrict_start_section 157 000 000; +470.91% ❗ 27 500 000 40 660 000 (12 000 000; 53 000 000) 5 000 000 204 000 000
tests::resume_program_works 89 000 000; +71.15% ❗ 52 000 000 65 960 000 (38 000 000; 79 500 000) 22 000 000 300 000 000
tests::send_message_expected_failure 110 000 000; +201.37% ❗ 36 500 000 43 480 000 (17 000 000; 59 000 000) 7 000 000 180 000 000
tests::send_message_works 51 000 000; +45.71% ✔️ 35 000 000 49 830 000 (16 500 000; 59 500 000) 7 000 000 302 000 000
tests::send_reply_failure_to_claim_from_mailbox 63 000 000; +75.00% ❗ 36 000 000 47 340 000 (21 000 000; 54 500 000) 7 000 000 257 000 000
tests::send_reply_value_claiming_works 92 000 000; +132.91% ❗ 39 500 000 49 270 000 (22 500 000; 53 500 000) 6 000 000 292 000 000
tests::send_reply_works 146 000 000; +284.21% ❗ 38 000 000 46 800 000 (22 000 000; 59 000 000) 6 000 000 255 000 000
tests::spent_gas_to_reward_block_author_works 69 000 000; +122.58% ❗ 31 000 000 45 380 000 (17 500 000; 56 000 000) 7 000 000 295 000 000
tests::submit_program_expected_failure 52 000 000; +62.50% ✔️ 32 000 000 44 770 000 (20 500 000; 57 500 000) 6 000 000 175 000 000
tests::submit_program_fails_on_duplicate_id 84 000 000; +140.00% ❗ 35 000 000 50 550 000 (20 500 000; 57 000 000) 6 000 000 336 000 000
tests::test_async_messages 445 000 000; +107.46% ❗ 214 500 000 247 900 000 (201 500 000; 243 500 000) 165 000 000 595 000 000
tests::test_code_is_not_reset_within_program_submission 178 000 000; +334.15% ❗ 41 000 000 49 350 000 (23 000 000; 67 500 000) 6 000 000 355 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 213 000 000; +491.67% ❗ 36 000 000 48 350 000 (24 500 000; 62 000 000) 6 000 000 268 000 000
tests::test_code_submission_pass 132 000 000; +234.18% ❗ 39 500 000 48 490 000 (24 000 000; 57 500 000) 5 000 000 192 000 000
tests::test_create_program_duplicate 76 000 000; +36.94% ✔️ 55 500 000 68 880 000 (43 000 000; 82 500 000) 25 000 000 229 000 000
tests::test_create_program_duplicate_in_one_execution 118 000 000; +151.06% ❗ 47 000 000 60 430 000 (36 500 000; 77 000 000) 20 000 000 224 000 000
tests::test_create_program_miscellaneous 198 000 000; +209.38% ❗ 64 000 000 75 010 000 (48 000 000; 83 500 000) 33 000 000 260 000 000
tests::test_create_program_no_code_hash 197 000 000; +106.28% ❗ 95 500 000 114 000 000 (83 000 000; 112 000 000) 60 000 000 498 000 000
tests::test_create_program_simple 115 000 000; +76.92% ❗ 65 000 000 74 330 000 (53 000 000; 81 500 000) 36 000 000 265 000 000
tests::test_create_program_with_exceeding_value 173 000 000; +288.76% ❗ 44 500 000 57 770 000 (28 500 000; 61 000 000) 15 000 000 432 000 000
tests::test_create_program_with_value_lt_ed 111 000 000; +122.00% ❗ 50 000 000 58 640 000 (38 000 000; 67 500 000) 22 000 000 264 000 000
tests::test_create_program_without_gas_works 191 000 000; +278.22% ❗ 50 500 000 56 090 000 (34 000 000; 67 500 000) 12 000 000 244 000 000
tests::test_message_processing_for_non_existing_destination 191 000 000; +349.41% ❗ 42 500 000 53 270 000 (30 500 000; 66 500 000) 9 000 000 242 000 000
tests::test_reply_to_terminated_program 103 000 000; +112.37% ❗ 48 500 000 59 240 000 (32 000 000; 72 000 000) 15 000 000 292 000 000
tests::test_same_code_submission_fails 110 000 000; +147.19% ❗ 44 500 000 54 860 000 (26 500 000; 66 500 000) 7 000 000 286 000 000
tests::test_two_contracts_composition_works 189 000 000; +142.31% ❗ 78 000 000 91 870 000 (65 000 000; 97 500 000) 44 000 000 328 000 000
tests::uninitialized_program_should_accept_replies 190 000 000; +258.49% ❗ 53 000 000 71 290 000 (42 500 000; 72 000 000) 22 000 000 360 000 000
tests::unstoppable_block_execution_works 165 000 000; +258.70% ❗ 46 000 000 59 400 000 (33 000 000; 67 500 000) 13 000 000 260 000 000
tests::unused_gas_released_back_works 169 000 000; +284.09% ❗ 44 000 000 54 830 000 (30 500 000; 67 000 000) 8 000 000 328 000 000
tests::wake_messages_after_program_inited 378 000 000; +355.42% ‼️ 83 000 000 98 330 000 (72 000 000; 102 500 000) 52 000 000 362 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 34 000 000; -8.11% ✔️ 37 000 000 51 020 000 (24 000 000; 63 000 000) 5 000 000 330 000 000
tests::check_changed_pages_in_storage 22 000 000; -50.56% ✔️ 44 500 000 53 690 000 (30 500 000; 63 500 000) 7 000 000 200 000 000
tests::debug_mode_works 49 000 000; +11.36% ✔️ 44 000 000 59 020 000 (33 000 000; 69 500 000) 13 000 000 296 000 000

name = pallet-gear-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 48 000 000; +20.00% ✔️ 40 000 000 51 050 000 (24 500 000; 67 000 000) 3 000 000 286 000 000
tests::all_keys_are_cleared 66 000 000; +73.68% ❗ 38 000 000 50 390 000 (26 000 000; 58 500 000) 6 000 000 296 000 000
tests::can_cut_nodes 75 000 000; +72.41% ❗ 43 500 000 53 100 000 (28 000 000; 67 000 000) 6 000 000 239 000 000
tests::gas_free_after_consumed 51 000 000; +10.87% ✔️ 46 000 000 57 570 000 (29 000 000; 72 000 000) 8 000 000 260 000 000
tests::limit_vs_origin 157 000 000; +260.92% ❗ 43 500 000 53 970 000 (27 500 000; 67 500 000) 6 000 000 282 000 000
tests::long_chain 51 000 000; +24.39% ✔️ 41 000 000 56 170 000 (29 000 000; 65 500 000) 9 000 000 368 000 000
tests::simple_value_tree 78 000 000; +81.40% ❗ 43 000 000 59 450 000 (26 500 000; 65 500 000) 9 000 000 400 000 000
tests::split_with_no_value 63 000 000; +48.24% ❗ 42 500 000 57 980 000 (25 500 000; 62 000 000) 5 000 000 366 000 000
tests::splits_fail 53 000 000; +32.50% ✔️ 40 000 000 56 740 000 (27 500 000; 59 500 000) 5 000 000 344 000 000
tests::sub_nodes_tree 39 000 000; -9.30% ✔️ 43 000 000 54 870 000 (27 000 000; 62 500 000) 6 000 000 412 000 000
tests::sub_nodes_tree_with_spends 36 000 000; -7.69% ✔️ 39 000 000 51 670 000 (25 000 000; 58 000 000) 7 000 000 348 000 000
tests::subtree_gas_limit_remains_intact 131 000 000; +219.51% ❗ 41 000 000 58 720 000 (26 500 000; 64 000 000) 9 000 000 349 000 000
tests::test_consume_procedure 299 000 000; +697.33% ❗ 37 500 000 51 260 000 (23 500 000; 57 000 000) 7 000 000 308 000 000
tests::value_tree_known_errors 122 000 000; +225.33% ❗ 37 500 000 50 780 000 (22 000 000; 57 500 000) 5 000 000 352 000 000
tests::value_tree_with_all_kinds_of_nodes 290 000 000; +634.18% ❗ 39 500 000 49 850 000 (24 000 000; 58 500 000) 5 000 000 316 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 377 000 000; +918.92% ‼️ 37 000 000 45 760 000 (16 000 000; 55 500 000) 4 000 000 328 000 000
tests::dequeued_impl_works_manually 85 000 000; +102.38% ❗ 42 000 000 49 490 000 (27 000 000; 56 500 000) 5 000 000 240 000 000
tests::queue_processing_impl_works_manually 96 000 000; +152.63% ❗ 38 000 000 43 620 000 (22 500 000; 55 000 000) 7 000 000 196 000 000
tests::queue_works 149 000 000; +308.22% ❗ 36 500 000 51 020 000 (25 500 000; 61 000 000) 5 000 000 308 000 000
tests::sent_impl_works 271 000 000; +560.98% ‼️ 41 000 000 45 710 000 (26 500 000; 52 000 000) 5 000 000 243 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 193 000 000; +436.11% ❗ 36 000 000 43 170 000 (20 500 000; 52 000 000) 3 000 000 327 000 000
tests::custom_fee_multiplier_updated_per_block 264 000 000; +604.00% ‼️ 37 500 000 49 060 000 (25 000 000; 53 000 000) 5 000 000 264 000 000
tests::fee_rounding_error_bounded_by_multiplier 98 000 000; +164.86% ❗ 37 000 000 47 500 000 (23 000 000; 52 500 000) 6 000 000 295 000 000
tests::mq_size_affecting_fee_works 220 000 000; +486.67% ❗ 37 500 000 46 150 000 (24 500 000; 50 000 000) 6 000 000 259 000 000
tests::mq_size_not_affecting_fee_works 83 000 000; +124.32% ❗ 37 000 000 46 190 000 (23 500 000; 48 000 000) 5 000 000 252 000 000
tests::query_info_and_fee_details_work 272 000 000; +635.14% ❗ 37 000 000 49 190 000 (28 000 000; 51 000 000) 8 000 000 280 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 257 000 000; +690.77% ❗ 32 500 000 44 690 000 (15 000 000; 47 500 000) 4 000 000 301 000 000
tests::pause_program_twice_fails 170 000 000; +372.22% ❗ 36 000 000 50 260 000 (22 500 000; 46 500 000) 6 000 000 284 000 000
tests::pause_program_works 255 000 000; +571.05% ❗ 38 000 000 52 690 000 (30 000 000; 56 500 000) 11 000 000 301 000 000
tests::pause_terminated_program_fails 300 000 000; +733.33% ‼️ 36 000 000 45 220 000 (26 500 000; 47 500 000) 4 000 000 232 000 000
tests::pause_uninitialized_program_works 113 000 000; +205.41% ❗ 37 000 000 50 950 000 (27 000 000; 48 000 000) 11 000 000 284 000 000
tests::resume_program_twice_fails 161 000 000; +312.82% ❗ 39 000 000 54 590 000 (31 000 000; 52 500 000) 17 000 000 268 000 000
tests::resume_program_wrong_list_fails 199 000 000; +445.21% ❗ 36 500 000 51 130 000 (30 000 000; 50 000 000) 15 000 000 244 000 000
tests::resume_program_wrong_memory_fails 197 000 000; +432.43% ❗ 37 000 000 48 700 000 (28 000 000; 49 000 000) 14 000 000 260 000 000
tests::resume_uninitialized_program_works 153 000 000; +292.31% ❗ 39 000 000 50 410 000 (28 000 000; 53 500 000) 18 000 000 212 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 83 000 000; +181.36% ❗ 29 500 000 43 490 000 (21 000 000; 38 500 000) 4 000 000 268 000 000
tests::dust_discarded_with_noop 106 000 000; +226.15% ❗ 32 500 000 47 590 000 (24 000 000; 45 500 000) 7 000 000 264 000 000
tests::external_submitter_gets_rewarded 108 000 000; +237.50% ❗ 32 000 000 46 880 000 (26 000 000; 43 000 000) 10 000 000 272 000 000
tests::gas_properly_handled_for_trap_replies 134 000 000; +354.24% ❗ 29 500 000 42 910 000 (23 500 000; 44 000 000) 8 000 000 212 000 000
tests::ocw_double_charge 35 000 000; +20.69% ✔️ 29 000 000 42 600 000 (21 000 000; 44 000 000) 5 000 000 207 000 000
tests::ocw_interval_maintained 178 000 000; +474.19% ❗ 31 000 000 42 060 000 (23 000 000; 42 000 000) 7 000 000 257 000 000
tests::ocw_interval_stretches_for_large_wait_list 170 000 000; +476.27% ❗ 29 500 000 41 940 000 (22 000 000; 42 000 000) 7 000 000 192 000 000
tests::ocw_overlapping_prevented 146 000 000; +421.43% ❗ 28 000 000 40 490 000 (19 500 000; 36 500 000) 6 000 000 248 000 000
tests::rent_charge_works 176 000 000; +528.57% ‼️ 28 000 000 39 940 000 (18 500 000; 37 500 000) 9 000 000 173 000 000
tests::trap_reply_message_is_sent 255 000 000; +844.44% ‼️ 27 000 000 39 410 000 (18 000 000; 37 500 000) 6 000 000 208 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 145 565 162 500; +111.13% ‼️ 68 944 986 412 68 935 243 098 (68 757 923 556; 69 084 931 792) 68 468 727 241 69 594 676 861

name = Async RwLock

name current median average lower/upper quartile min max
check readers 873 101 132; +950.44% ‼️ 83 117 557 83 644 149 (81 045 159; 86 423 397) 74 649 155 94 266 987
forever lock 1 045 521 516; +1098.20% ‼️ 87 257 515 88 378 652 (84 648 129; 91 181 326) 79 257 738 105 856 224
read while writing 2 140 881 189; +2009.23% ‼️ 101 500 801 102 983 935 (97 451 764; 108 087 513) 90 578 254 122 270 524
rwlock wide 2 719 406 131; +2095.70% ‼️ 123 851 697 128 419 384 (118 451 998; 134 983 536) 107 355 094 173 640 120
write while reading 2 138 372 539; +1897.32% ‼️ 107 062 085 109 343 141 (102 268 082; 114 118 092) 95 128 205 136 288 551

name = Async init

name current median average lower/upper quartile min max
approved pong 11 242 265 566; +7.94% ‼️ 10 415 082 102 10 416 381 364 (10 380 035 173; 10 451 635 773) 10 185 550 808 10 576 867 206

name = Async-await

name current median average lower/upper quartile min max
normal 701 730 778; +949.10% ‼️ 66 889 051 67 078 420 (62 853 648; 71 848 851) 50 909 778 81 048 490
panic 735 653 789; +975.06% ‼️ 68 428 804 69 027 857 (66 034 078; 73 397 478) 57 314 227 80 845 019

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 1 192 142 726; +1210.82% ‼️ 90 946 559 91 903 733 (88 165 840; 95 289 667) 81 729 763 108 929 028

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; eve doesn't answer, alice replies with incorrect payload 6 580 595 196; +34.06% ‼️ 4 908 716 743 4 905 372 995 (4 880 127 952; 4 928 889 001) 4 805 517 032 5 002 477 296
2 of 3; no replies 6 753 538 717; +39.63% ‼️ 4 836 809 663 4 835 703 421 (4 816 713 313; 4 855 621 446) 4 730 286 427 4 912 078 446
Single signatory & zero threshold 11 241 579 413; +129.11% ‼️ 4 906 662 049 4 902 092 037 (4 881 092 145; 4 929 047 123) 4 806 116 008 4 973 841 875
Three signatories; Bob replies with incorrect signature 10 403 018 307; +111.39% ‼️ 4 921 339 562 4 918 106 971 (4 891 404 421; 4 943 999 450) 4 831 031 587 5 064 713 317
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 11 233 962 191; +128.69% ‼️ 4 912 278 545 4 909 460 160 (4 887 212 084; 4 935 659 575) 4 772 734 924 5 045 636 790

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 3 371 036 057; +38.07% ‼️ 2 441 581 299 2 442 938 795 (2 430 325 489; 2 456 798 952) 2 367 951 219 2 515 047 390
correct signature but for another message 3 857 139 332; +54.31% ‼️ 2 499 646 971 2 496 065 213 (2 472 875 077; 2 520 571 557) 2 419 910 096 2 564 951 462
no reply 3 886 357 449; +59.90% ‼️ 2 430 530 415 2 428 168 049 (2 409 904 099; 2 442 638 270) 2 365 212 383 2 524 863 238
signed message 4 152 684 540; +65.95% ‼️ 2 502 431 344 2 502 579 209 (2 484 511 123; 2 521 987 689) 2 417 845 345 2 585 816 748

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 844 556 954; +1022.72% ‼️ 75 224 081 75 239 379 (71 325 459; 78 970 829) 61 862 255 90 145 689

name = Decoder

name current median average lower/upper quartile min max
decoder 626 926 325; +818.33% ‼️ 68 268 175 67 562 580 (64 255 607; 71 567 204) 51 903 675 79 146 674

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 3 383 627 092; +2235.78% ‼️ 144 860 661 149 647 315 (138 173 393; 157 911 535) 128 829 831 201 371 071
join 3 399 524 783; +2182.15% ‼️ 148 961 753 153 461 754 (139 478 460; 162 862 728) 128 937 746 202 612 184
select 3 347 787 897; +2239.22% ‼️ 143 115 671 148 073 122 (135 022 107; 159 956 519) 125 984 685 189 633 744

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 2 871 552 617; +2122.94% ‼️ 129 177 883 133 602 221 (121 105 592; 143 290 627) 114 583 828 171 733 298

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 430 586 597; +514.28% ‼️ 70 095 658 70 509 199 (65 669 408; 74 876 974) 55 454 688 88 129 348

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 843 191 984; +982.25% ‼️ 77 911 027 77 997 956 (75 896 189; 79 804 488) 71 531 101 86 618 036

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 10 301 878 455; +6.71% ‼️ 9 654 293 368 9 656 271 236 (9 626 355 815; 9 689 120 046) 9 531 410 718 9 774 165 317

name = Multiping

name current median average lower/upper quartile min max
multiping 622 840 829; +898.03% ‼️ 62 406 715 63 312 738 (59 292 792; 67 697 281) 51 700 762 78 405 255

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 321 416 998; +428.47% ‼️ 60 820 213 61 413 659 (57 058 012; 66 018 895) 49 426 842 74 010 987
ping-pong wgas 658 514 693; +844.79% ‼️ 69 699 372 68 914 041 (65 127 173; 72 245 627) 54 666 193 80 896 150

name = Program_id test

name current median average lower/upper quartile min max
program_id 345 523 856; +509.32% ‼️ 56 706 682 58 280 079 (53 760 577; 62 895 438) 48 876 905 72 458 901

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 705 837 035; +935.51% ‼️ 68 163 521 68 361 315 (63 067 510; 73 270 624) 55 802 529 81 615 176
state-saving 690 329 885; +930.25% ‼️ 67 006 111 67 349 850 (61 620 236; 72 698 812) 56 012 588 84 449 978

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 368 507 937; +455.83% ‼️ 66 298 899 65 997 874 (62 169 977; 69 845 672) 53 736 547 83 440 669
Try to re-init existing program 785 787 156; +926.62% ‼️ 76 541 444 75 851 640 (71 196 869; 79 682 051) 64 428 439 86 959 810

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 239 514 210; +438.87% ‼️ 44 447 240 44 856 490 (42 047 569; 46 472 609) 37 615 643 63 052 403

name = Wait test

name current median average lower/upper quartile min max
wait 810 948 314; +1056.51% ‼️ 70 120 118 71 034 685 (65 779 609; 75 281 004) 56 837 879 88 564 230

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 875 192 516; +708.86% ‼️ 108 200 278 110 411 506 (103 386 922; 117 218 926) 95 656 257 139 037 498

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 866 685 544; +1050.83% ‼️ 75 309 792 76 414 691 (73 311 561; 79 719 020) 65 596 511 86 660 849

name = guestbook test

name current median average lower/upper quartile min max
guestbook 5 409 072 441; +13.88% ‼️ 4 749 685 899 4 750 545 045 (4 719 091 104; 4 774 636 683) 4 658 610 646 4 857 933 056

name = gui test

name current median average lower/upper quartile min max
gui 7 046 006 967; +9.99% ‼️ 6 406 179 034 6 402 888 458 (6 380 311 210; 6 424 931 982) 6 279 084 233 6 483 845 358

@codecov
Copy link

codecov bot commented Jul 1, 2022

Codecov Report

Merging #1133 (2e262a6) into master (e85bdd3) will decrease coverage by 0.34%.
The diff coverage is 60.10%.

@@            Coverage Diff             @@
##           master    #1133      +/-   ##
==========================================
- Coverage   74.57%   74.22%   -0.35%     
==========================================
  Files          97       97              
  Lines        9212     9254      +42     
==========================================
- Hits         6870     6869       -1     
- Misses       2342     2385      +43     
Impacted Files Coverage Δ
common/src/lib.rs 80.76% <ø> (-0.60%) ⬇️
core-processor/src/common.rs 0.00% <ø> (ø)
core-processor/src/ext.rs 90.68% <ø> (+0.36%) ⬆️
pallets/gear/src/tests.rs 92.96% <ø> (-0.12%) ⬇️
runtime-interface/src/deprecated.rs 0.00% <0.00%> (ø)
lazy-pages/src/lib.rs 53.52% <45.09%> (-25.90%) ⬇️
runtime-interface/src/lib.rs 50.00% <66.15%> (-0.37%) ⬇️
core-processor/src/executor.rs 87.25% <66.66%> (-0.73%) ⬇️
lazy-pages/src/sys.rs 72.88% <84.00%> (+4.13%) ⬆️
common/src/lazy_pages.rs 75.29% <87.50%> (+9.86%) ⬆️
... and 5 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e85bdd3...2e262a6. Read the comment docs.

@grishasobol grishasobol force-pushed the gsobol-lazy-pages-optim branch from 23ffc00 to 6f100f7 Compare July 4, 2022 20:30
@grishasobol grishasobol self-assigned this Jul 5, 2022
@gear-tech gear-tech deleted a comment from breathx Jul 5, 2022
@grishasobol grishasobol requested review from breathx and ark0f July 5, 2022 12:04
@grishasobol grishasobol added the A0-pleasereview PR is ready to be reviewed by the team label Jul 6, 2022
@grishasobol grishasobol force-pushed the gsobol-lazy-pages-optim branch from e2b206c to f308337 Compare July 6, 2022 09:22
@ukint-vs
Copy link
Member

ukint-vs commented Jul 6, 2022

the fact that the number of samples has decreased does not mean that the performance has grown, perf cannot sample signal handler. Therefore it is impossible to measure what is happening inside the handler.

@ukint-vs
Copy link
Member

ukint-vs commented Jul 6, 2022

Please provide a side-by-side benchmark (gr_read or gr_reply_commit) comparison of this branch with master.

@grishasobol
Copy link
Member Author

What do you mean side by side ?

@ukint-vs
Copy link
Member

ukint-vs commented Jul 6, 2022

What do you mean side by side ?

this branch: + r 58.08 µs
master: + r 57.9 µs

@grishasobol grishasobol force-pushed the gsobol-lazy-pages-optim branch from bf5413f to 1b27de5 Compare July 6, 2022 10:22
@ark0f
Copy link
Member

ark0f commented Jul 6, 2022

the fact that the number of samples has decreased does not mean that the performance has grown, perf cannot sample signal handler. Therefore it is impossible to measure what is happening inside the handler.

Will --all-kernel option help us?

@grishasobol
Copy link
Member Author

What do you mean side by side ?

this branch: + r 58.08 µs master: + r 57.9 µs

Done, see in head

@grishasobol grishasobol requested a review from ark0f July 6, 2022 11:35
@grishasobol
Copy link
Member Author

the fact that the number of samples has decreased does not mean that the performance has grown, perf cannot sample signal handler. Therefore it is impossible to measure what is happening inside the handler.

Will --all-kernel option help us?

I can see the difference only in syscalls, which begin to be profiled

@ukint-vs
Copy link
Member

ukint-vs commented Jul 6, 2022

the fact that the number of samples has decreased does not mean that the performance has grown, perf cannot sample signal handler. Therefore it is impossible to measure what is happening inside the handler.

Will --all-kernel option help us?

I can see the difference only in syscalls, which begin to be profiled

Good to know. Thx @ark0f

@grishasobol grishasobol force-pushed the gsobol-lazy-pages-optim branch from 39aba9e to 86f6061 Compare July 6, 2022 16:06
@shamilsan shamilsan changed the title lazy pages optimisation lazy pages optimization Jul 6, 2022
@grishasobol grishasobol merged commit 752522e into master Jul 7, 2022
@grishasobol grishasobol deleted the gsobol-lazy-pages-optim branch July 7, 2022 12:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A0-pleasereview PR is ready to be reviewed by the team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants