flow-go icon indicating copy to clipboard operation
flow-go copied to clipboard

Update Cadence version

Open devbugging opened this issue 3 years ago • 1 comments

Do not merge

This PR updates Cadence version that exposes the new storage API in the runtime environment.

devbugging avatar Aug 01 '22 11:08 devbugging

FVM Benchstat comparison

This branch with compared with the base branch onflow:master commit 03634c1406e86a40860d5561bb067bb7799b6073

The command (for i in {1..N}; do go test ./fvm --bench . --tags relic -shuffle=on --benchmem --run ^$; done) was used.

Bench tests were run a total of 10 times on each branch.

Collapsed results for better readability

old.txtnew.txt
time/opdelta
RuntimeTransaction/reference_tx-225.7ms ±17%24.1ms ± 1%~(p=0.075 n=10+10)
RuntimeTransaction/convert_int_to_string-226.1ms ± 5%25.9ms ± 1%~(p=0.436 n=9+9)
RuntimeTransaction/convert_int_to_string_and_concatenate_it-228.2ms ± 5%29.7ms ±17%~(p=0.280 n=10+10)
RuntimeTransaction/get_signer_address-225.1ms ± 4%24.7ms ± 2%~(p=0.237 n=8+10)
RuntimeTransaction/get_public_account-228.3ms ± 4%28.4ms ±12%~(p=0.796 n=9+9)
RuntimeTransaction/get_account_and_get_balance-2504ms ± 3%502ms ± 2%~(p=0.277 n=9+8)
RuntimeTransaction/get_account_and_get_available_balance-2410ms ± 2%407ms ± 2%~(p=0.353 n=10+10)
RuntimeTransaction/get_account_and_get_storage_used-232.4ms ± 3%32.2ms ± 2%~(p=0.165 n=10+10)
RuntimeTransaction/get_account_and_get_storage_capacity-2379ms ± 3%378ms ± 3%~(p=1.000 n=10+10)
RuntimeTransaction/get_signer_vault-233.0ms ± 2%32.7ms ± 1%~(p=0.077 n=9+9)
RuntimeTransaction/get_signer_receiver-244.2ms ± 4%43.6ms ± 2%~(p=0.218 n=10+10)
RuntimeTransaction/transfer_tokens-2191ms ± 1%190ms ± 2%~(p=0.156 n=9+10)
RuntimeTransaction/load_and_save_empty_string_on_signers_address-232.5ms ± 3%32.0ms ± 1%~(p=0.133 n=10+9)
RuntimeTransaction/load_and_save_long_string_on_signers_address-272.3ms ± 4%72.0ms ± 2%~(p=0.353 n=10+10)
RuntimeTransaction/create_new_account-2956ms ± 2%953ms ± 2%~(p=0.315 n=8+10)
RuntimeTransaction/call_empty_contract_function-228.1ms ± 4%27.7ms ± 2%~(p=0.063 n=10+10)
RuntimeTransaction/emit_event-242.8ms ± 3%42.5ms ± 2%~(p=0.190 n=10+10)
RuntimeTransaction/borrow_array_from_storage-2118ms ± 4%117ms ± 1%~(p=0.315 n=10+10)
RuntimeTransaction/copy_array_from_storage-2116ms ± 5%115ms ± 2%~(p=0.481 n=10+10)
RuntimeNFTBatchTransfer-2108ms ± 2%108ms ± 2%~(p=0.905 n=10+9)
 
computationdelta
RuntimeTransaction/reference_tx-2202 ± 0%202 ± 0%~(all equal)
RuntimeTransaction/convert_int_to_string-2402 ± 0%402 ± 0%~(all equal)
RuntimeTransaction/convert_int_to_string_and_concatenate_it-2502 ± 0%502 ± 0%~(all equal)
RuntimeTransaction/get_signer_address-2302 ± 0%302 ± 0%~(all equal)
RuntimeTransaction/get_public_account-2402 ± 0%402 ± 0%~(all equal)
RuntimeTransaction/get_account_and_get_balance-21.00k ± 0%1.00k ± 0%~(all equal)
RuntimeTransaction/get_account_and_get_available_balance-22.60k ± 0%2.60k ± 0%~(all equal)
RuntimeTransaction/get_account_and_get_storage_used-2402 ± 0%402 ± 0%~(all equal)
RuntimeTransaction/get_account_and_get_storage_capacity-21.30k ± 0%1.30k ± 0%~(all equal)
RuntimeTransaction/get_signer_vault-2402 ± 0%402 ± 0%~(all equal)
RuntimeTransaction/get_signer_receiver-2602 ± 0%602 ± 0%~(all equal)
RuntimeTransaction/transfer_tokens-23.50k ± 0%3.50k ± 0%~(all equal)
RuntimeTransaction/load_and_save_empty_string_on_signers_address-2602 ± 0%602 ± 0%~(all equal)
RuntimeTransaction/load_and_save_long_string_on_signers_address-2602 ± 0%602 ± 0%~(all equal)
RuntimeTransaction/create_new_account-2202 ± 0%202 ± 0%~(all equal)
RuntimeTransaction/call_empty_contract_function-2402 ± 0%402 ± 0%~(all equal)
RuntimeTransaction/emit_event-2602 ± 0%602 ± 0%~(all equal)
RuntimeTransaction/borrow_array_from_storage-22.60k ± 0%2.60k ± 0%~(all equal)
RuntimeTransaction/copy_array_from_storage-22.60k ± 0%2.60k ± 0%~(all equal)
 
interactionsdelta
RuntimeTransaction/reference_tx-247.7k ± 0%47.7k ± 0%~(all equal)
RuntimeTransaction/convert_int_to_string-247.7k ± 0%47.7k ± 0%~(all equal)
RuntimeTransaction/convert_int_to_string_and_concatenate_it-247.7k ± 0%47.7k ± 0%~(all equal)
RuntimeTransaction/get_signer_address-247.7k ± 0%47.7k ± 0%~(all equal)
RuntimeTransaction/get_public_account-247.7k ± 0%47.7k ± 0%~(all equal)
RuntimeTransaction/get_account_and_get_balance-216.8M ± 0%16.8M ± 0%~(all equal)
RuntimeTransaction/get_account_and_get_available_balance-25.28M ± 0%5.28M ± 0%~(all equal)
RuntimeTransaction/get_account_and_get_storage_used-251.3k ± 0%51.3k ± 0%~(all equal)
RuntimeTransaction/get_account_and_get_storage_capacity-25.28M ± 0%5.28M ± 0%~(all equal)
RuntimeTransaction/get_signer_vault-248.0k ± 0%48.0k ± 0%~(all equal)
RuntimeTransaction/get_signer_receiver-248.3k ± 0%48.3k ± 0%~(all equal)
RuntimeTransaction/transfer_tokens-249.1k ± 0%49.1k ± 0%~(all equal)
RuntimeTransaction/load_and_save_empty_string_on_signers_address-248.1k ± 0%48.1k ± 0%~(all equal)
RuntimeTransaction/load_and_save_long_string_on_signers_address-253.0k ± 0%53.0k ± 0%~(all equal)
RuntimeTransaction/create_new_account-28.53M ± 0%8.53M ± 0%~(all equal)
RuntimeTransaction/call_empty_contract_function-247.9k ± 0%47.9k ± 0%~(all equal)
RuntimeTransaction/emit_event-247.9k ± 0%47.9k ± 0%~(all equal)
RuntimeTransaction/borrow_array_from_storage-253.1k ± 0%53.1k ± 0%~(all equal)
RuntimeTransaction/copy_array_from_storage-253.1k ± 0%53.1k ± 0%~(all equal)
 
alloc/opdelta
RuntimeTransaction/get_account_and_get_available_balance-2145MB ± 0%146MB ± 0%+0.02%(p=0.019 n=10+7)
RuntimeTransaction/reference_tx-27.63MB ± 1%7.61MB ± 0%~(p=0.165 n=10+10)
RuntimeTransaction/convert_int_to_string-28.08MB ± 0%8.08MB ± 1%~(p=0.968 n=10+9)
RuntimeTransaction/convert_int_to_string_and_concatenate_it-28.64MB ± 0%8.67MB ± 1%~(p=0.190 n=10+10)
RuntimeTransaction/get_signer_address-27.85MB ± 1%7.84MB ± 0%~(p=0.156 n=10+9)
RuntimeTransaction/get_public_account-29.30MB ± 1%9.28MB ± 0%~(p=0.579 n=10+10)
RuntimeTransaction/get_account_and_get_balance-2195MB ± 0%195MB ± 0%~(p=0.853 n=10+10)
RuntimeTransaction/get_account_and_get_storage_used-210.5MB ± 1%10.5MB ± 1%~(p=0.481 n=10+10)
RuntimeTransaction/get_account_and_get_storage_capacity-2140MB ± 0%140MB ± 0%~(p=0.190 n=10+10)
RuntimeTransaction/get_signer_vault-29.84MB ± 1%9.86MB ± 1%~(p=0.579 n=10+10)
RuntimeTransaction/get_signer_receiver-213.6MB ± 0%13.6MB ± 1%~(p=0.353 n=10+10)
RuntimeTransaction/transfer_tokens-248.8MB ± 0%48.8MB ± 0%~(p=0.971 n=10+10)
RuntimeTransaction/load_and_save_empty_string_on_signers_address-29.27MB ± 0%9.27MB ± 0%~(p=0.436 n=10+10)
RuntimeTransaction/create_new_account-2217MB ± 0%217MB ± 0%~(p=0.133 n=9+10)
RuntimeTransaction/call_empty_contract_function-28.54MB ± 0%8.55MB ± 0%~(p=0.549 n=9+10)
RuntimeTransaction/emit_event-212.9MB ± 0%12.8MB ± 0%~(p=0.356 n=10+9)
RuntimeTransaction/borrow_array_from_storage-234.0MB ± 0%33.9MB ± 0%~(p=0.063 n=10+10)
RuntimeTransaction/copy_array_from_storage-245.1MB ± 0%45.1MB ± 0%~(p=0.661 n=10+9)
RuntimeNFTBatchTransfer-224.5MB ± 0%24.5MB ± 0%~(p=0.696 n=8+10)
RuntimeTransaction/load_and_save_long_string_on_signers_address-223.8MB ± 0%23.8MB ± 0%−0.13%(p=0.019 n=9+9)
 
allocs/opdelta
RuntimeTransaction/get_signer_receiver-2263k ± 0%263k ± 0%+0.01%(p=0.015 n=10+8)
RuntimeTransaction/reference_tx-2122k ± 0%122k ± 0%~(p=0.695 n=10+10)
RuntimeTransaction/convert_int_to_string-2137k ± 0%137k ± 0%~(p=0.053 n=10+10)
RuntimeTransaction/convert_int_to_string_and_concatenate_it-2151k ± 0%151k ± 0%~(p=0.253 n=10+10)
RuntimeTransaction/get_signer_address-2128k ± 0%128k ± 0%~(p=0.108 n=10+10)
RuntimeTransaction/get_public_account-2159k ± 0%159k ± 0%~(p=0.986 n=10+10)
RuntimeTransaction/get_account_and_get_balance-23.17M ± 0%3.17M ± 0%~(p=0.853 n=10+10)
RuntimeTransaction/get_account_and_get_available_balance-22.55M ± 0%2.55M ± 0%~(p=0.163 n=9+10)
RuntimeTransaction/get_account_and_get_storage_used-2181k ± 0%181k ± 0%~(p=0.539 n=10+10)
RuntimeTransaction/get_account_and_get_storage_capacity-22.39M ± 0%2.39M ± 0%~(p=0.867 n=7+10)
RuntimeTransaction/get_signer_vault-2174k ± 0%174k ± 0%~(p=0.589 n=10+10)
RuntimeTransaction/transfer_tokens-21.03M ± 0%1.03M ± 0%~(p=0.579 n=10+10)
RuntimeTransaction/load_and_save_empty_string_on_signers_address-2173k ± 0%173k ± 0%~(p=0.983 n=10+9)
RuntimeTransaction/load_and_save_long_string_on_signers_address-2269k ± 0%269k ± 0%~(p=0.410 n=10+9)
RuntimeTransaction/create_new_account-23.59M ± 0%3.59M ± 0%~(p=0.796 n=10+10)
RuntimeTransaction/call_empty_contract_function-2140k ± 0%140k ± 0%~(p=1.000 n=10+8)
RuntimeTransaction/emit_event-2186k ± 0%186k ± 0%~(p=0.725 n=10+10)
RuntimeTransaction/borrow_array_from_storage-2412k ± 0%412k ± 0%~(p=0.869 n=10+10)
RuntimeTransaction/copy_array_from_storage-2368k ± 0%368k ± 0%~(p=0.563 n=9+10)
RuntimeNFTBatchTransfer-2332k ± 0%333k ± 0%~(p=0.530 n=8+10)
 

github-actions[bot] avatar Aug 01 '22 11:08 github-actions[bot]

@sideninja good to close?

Kay-Zee avatar Nov 25 '22 01:11 Kay-Zee