Skip to content

Instantly share code, notes, and snippets.

@jsign
Created November 14, 2025 17:39
Show Gist options
  • Select an option

  • Save jsign/b9f656904620c8b49f0fa50b672de59b to your computer and use it in GitHub Desktop.

Select an option

Save jsign/b9f656904620c8b49f0fa50b672de59b to your computer and use it in GitHub Desktop.
COST DISTRIBUTION COST %
--------------------------------------------
BASE 293,601,280 0.55%
MAIN 30,787,913,852 58.13%
OPCODES 6,768,539,324 12.78%
PRECOMPILES 11,233,562,620 21.21%
MEMORY 3,883,892,920 7.33%
FROPS 6,500,227,574 12.27%
RAM USAGE 56,585,293 10.54%
COST BY OPCODE COUNT COST % RANK
-----------------------------------------------------------------
OP ltu 22,595,764 1,694,682,300 3.20% #2
OP lt 1,123,115 84,233,625 0.16%
OP eq 1,937,118 145,283,850 0.27%
OP add 48,484,294 1,260,591,644 2.38% #4
OP sub 2,600,509 195,038,175 0.37%
OP and 6,626,028 496,952,100 0.94%
OP or 21,704,393 1,627,829,475 3.07% #3
OP xor 3,356,876 251,765,700 0.48%
OP add_w 541,685 40,626,375 0.08%
OP sub_w 615,673 46,175,475 0.09%
OP pubout 32 0 0.00%
OP sll 6,460,172 348,849,288 0.66%
OP srl 4,122,839 222,633,306 0.42%
OP sra 2,012,961 108,699,894 0.21%
OP srl_w 265,646 14,344,884 0.03%
OP signextend_b 330,452 17,844,408 0.03%
OP signextend_h 405,016 21,870,864 0.04%
OP signextend_w 530,049 28,622,646 0.05%
OP muluh 719,523 68,354,685 0.13%
OP mul 990,195 94,068,525 0.18%
OP divu 752 71,440 0.00%
OP remu 7 665 0.00%
OP keccak 85,783 10,989,488,564 20.75% #1
OP arith256_mod 3,901 5,305,360 0.01%
OP secp256k1_add 62,481 84,974,160 0.16%
OP secp256k1_dbl 83,029 112,919,440 0.21%
OP fcall_param 1,646 0 0.00%
OP fcall 1,185 0 0.00%
OP fcall_get 7,419 0 0.00%
OP sha256 3 26,136 0.00%
OP bn254_curve_add 222 301,920 0.00%
OP bn254_curve_dbl 504 685,440 0.00%
OP bn254_complex_add 10,575 14,382,000 0.03%
OP bn254_complex_sub 5,612 7,632,320 0.01%
OP bn254_complex_mul 13,123 17,847,280 0.03%
FROPS BY OPCODE COUNT HIT COST % RANK
------------------------------------------------------------------------
FROP ltu 4,819,007 17.58% 361,425,525 0.68%
FROP lt 1,502,300 57.22% 112,672,500 0.21%
FROP eq 23,180,718 92.29% 1,738,553,850 3.28% #1
FROP add 36,694,102 43.08% 954,046,652 1.80% #4
FROP sub 2,669,651 50.66% 200,223,825 0.38%
FROP and 15,922,416 70.61% 1,194,181,200 2.25% #3
FROP or 5,065,941 18.92% 379,945,575 0.72%
FROP xor 503,982 13.05% 37,798,650 0.07%
FROP add_w 239,109 30.62% 17,933,175 0.03%
FROP sub_w 1,158,958 65.31% 86,921,850 0.16%
FROP sll 24,323,017 79.01% 1,313,442,918 2.48% #2
FROP srl 1,411,605 25.51% 76,226,670 0.14%
FROP sra 15,433 0.76% 833,382 0.00%
FROP srl_w 209,383 44.08% 11,306,682 0.02%
FROP muluh 57,900 7.45% 5,500,500 0.01%
FROP mul 96,854 8.91% 9,201,130 0.02%
FROP divu 142 15.88% 13,490 0.00%
TOP STEP FUNCTIONS
------------------
130,660,297 28.86% compiler_builtins::mem::memcpy
35,418,065 7.82% alloy_primitives::utils::keccak256::keccak256
29,204,167 6.45% mpt::mpt::rlp::<impl alloy_rlp::decode::Decodable for mpt::mpt::node::Node<M>>::decode
27,015,167 5.97% alloy_evm::evm::Evm::transact
25,992,417 5.74% memcmp
16,346,474 3.61% mpt::mpt::rlp::<impl mpt::mpt::node::Node<M>>::resolve_digests
14,122,775 3.12% revm_bytecode::legacy::analysis::analyze_legacy
12,211,466 2.70% core::array::<impl core::hash::Hash for [T; N]>::hash
12,079,327 2.67% memset
10,694,040 2.36% revm_interpreter::instructions::stack::swap
TOP COST FUNCTIONS
------------------
12,168,770,660 22.97% compiler_builtins::mem::memcpy
10,996,225,296 20.76% syscall_keccak_f
3,419,977,716 6.46% alloy_primitives::utils::keccak256::keccak256
2,579,704,069 4.87% mpt::mpt::rlp::<impl alloy_rlp::decode::Decodable for mpt::mpt::node::Node<M>>::decode
2,393,683,407 4.52% alloy_evm::evm::Evm::transact
2,072,086,940 3.91% memcmp
1,524,747,846 2.88% mpt::mpt::rlp::<impl mpt::mpt::node::Node<M>>::resolve_digests
1,373,488,041 2.59% revm_bytecode::legacy::analysis::analyze_legacy
1,270,941,831 2.40% core::array::<impl core::hash::Hash for [T; N]>::hash
1,182,404,366 2.23% memset
DETAIL FUNCTION compiler_builtins::mem::memcpy
----------------------------------------------
STEPS 130,660,297 28.86%
COST 12,168,770,660 22.97%
| COST BY OPCODE COUNT COST % RANK
| -----------------------------------------------------------------
| OP ltu 14,509,629 1,088,222,175 8.94% #1
| OP add 21,459,558 557,948,508 4.59% #2
| OP sub 371,255 27,844,125 0.23%
| OP and 2,836,264 212,719,800 1.75% #4
| OP or 3,303,530 247,764,750 2.04% #3
| OP sub_w 564,791 42,359,325 0.35%
| OP sll 2,400,209 129,611,286 1.07%
| OP srl 2,393,601 129,254,454 1.06%
| OP signextend_h 377,370 20,377,980 0.17%
| OP signextend_w 426,991 23,057,514 0.19%
| TOP STEP CALLERS (calls, steps)
| -------------------------------
| 927,829 131,588,126 100.71% memcpy
DETAIL FUNCTION syscall_keccak_f
--------------------------------
STEPS 85,783 0.02%
COST 10,996,225,296 20.76%
| COST BY OPCODE COUNT COST % RANK
| -----------------------------------------------------------------
| OP keccak 85,783 10,989,488,564 99.94% #1
| TOP STEP CALLERS (calls, steps)
| -------------------------------
| 85,783 171,566 200.00% alloy_primitives::utils::keccak256::keccak256
DETAIL FUNCTION alloy_primitives::utils::keccak256::keccak256
-------------------------------------------------------------
STEPS 35,418,065 7.82%
COST 3,419,977,716 6.46%
| COST BY OPCODE COUNT COST % RANK
| -----------------------------------------------------------------
| OP ltu 9,166 687,450 0.02%
| OP eq 56,468 4,235,100 0.12%
| OP add 440,793 11,460,618 0.34% #4
| OP sub 9,166 687,450 0.02%
| OP or 6,240,330 468,024,750 13.69% #1
| OP xor 1,268,564 95,142,300 2.78% #2
| OP add_w 11,581 868,575 0.03%
| OP sll 913,350 49,320,900 1.44% #3
| OP srl 8,765 473,310 0.01%
| OP muluh 11,581 1,100,195 0.03%
| TOP STEP CALLERS (calls, steps)
| -------------------------------
| 10,484 11,764,504 33.22% <hashbrown::map::HashMap<K,V,S,A> as core::iter::traits::collect::Extend<(K,V)>>::extend
| 5,398 6,383,464 18.02% mpt::mpt::rlp::<impl mpt::mpt::node::Node<M>>::memoize
| 4,287 726,024 2.05% revm_interpreter::instructions::system::keccak256
| 3,902 585,300 1.65% <sparsestate::SparseState as reth_stateless::trie::StatelessTrie>::storage
| 2,342 351,300 0.99% alloy_primitives::bits::bloom::Bloom::accrue_raw_log
| 684 102,600 0.29% hashbrown::raw::RawIterRange<T>::fold_impl
| 570 85,500 0.24% <sparsestate::SparseState as reth_stateless::trie::StatelessTrie>::account
| 364 1,224,513 3.46% alloy_trie::hash_builder::HashBuilder<K>::update
| 345 51,750 0.15% <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
| 328 13,149,898 37.13% <hashbrown::map::HashMap<K,V,S,A> as core::iter::traits::collect::Extend<(K,V)>>::extend
DETAIL FUNCTION mpt::mpt::rlp::<impl alloy_rlp::decode::Decodable for mpt::mpt::node::Node<M>>::decode
------------------------------------------------------------------------------------------------------
STEPS 29,204,167 6.45%
COST 2,579,704,069 4.87%
| COST BY OPCODE COUNT COST % RANK
| -----------------------------------------------------------------
| OP ltu 217,003 16,275,225 0.63%
| OP lt 259,698 19,477,350 0.76% #4
| OP eq 112,881 8,466,075 0.33%
| OP add 2,327,770 60,522,020 2.35% #2
| OP sub 66,678 5,000,850 0.19%
| OP and 300,890 22,566,750 0.87% #3
| OP or 2,506,222 187,966,650 7.29% #1
| OP xor 140,403 10,530,225 0.41%
| OP add_w 20,332 1,524,900 0.06%
| OP sub_w 10,298 772,350 0.03%
| OP sll 320,861 17,326,494 0.67%
| OP srl 41,192 2,224,368 0.09%
| OP srl_w 20,596 1,112,184 0.04%
| OP signextend_b 260,304 14,056,416 0.54%
| TOP STEP CALLERS (calls, steps)
| -------------------------------
| 10,599 29,214,766 100.04% mpt::mpt::rlp::<impl mpt::mpt::node::Node<M>>::resolve_digests
DETAIL FUNCTION alloy_evm::evm::Evm::transact
---------------------------------------------
STEPS 27,015,167 5.97%
COST 2,393,683,407 4.52%
| COST BY OPCODE COUNT COST % RANK
| -----------------------------------------------------------------
| OP ltu 1,474,792 110,609,400 4.62% #1
| OP lt 2 150 0.00%
| OP eq 1,015 76,125 0.00%
| OP add 3,076,428 79,987,128 3.34% #3
| OP sub 1,471,777 110,383,275 4.61% #2
| OP and 1,148 86,100 0.00%
| OP or 77,571 5,817,825 0.24% #4
| OP add_w 262 19,650 0.00%
| OP sll 3,208 173,232 0.01%
| OP srl 5,506 297,324 0.01%
| OP signextend_b 168 9,072 0.00%
| OP signextend_h 17,972 970,488 0.04%
| OP signextend_w 18,478 997,812 0.04%
| OP muluh 809 76,855 0.00%
| OP mul 9,996 949,620 0.04%
| TOP STEP CALLERS (calls, steps)
| -------------------------------
| 168 27,015,335 100.00% alloy_evm::block::BlockExecutor::execute_block
DETAIL FUNCTION memcmp
----------------------
STEPS 25,992,417 5.74%
COST 2,072,086,940 3.91%
| COST BY OPCODE COUNT COST % RANK
| -----------------------------------------------------------------
| OP add 4,539,784 118,034,384 5.70% #1
| TOP STEP CALLERS (calls, steps)
| -------------------------------
| 72,122 7,559,541 29.08% revm_interpreter::instructions::control::jumpi
| 63,133 524,556 2.02% ziskos::zisklib::lib::secp256k1::curve::secp256k1_double_scalar_mul_with_g
| 37,648 5,083,005 19.56% revm_interpreter::instructions::bitwise::iszero
| 22,153 1,577,832 6.07% revm_interpreter::instructions::bitwise::eq
| 14,995 2,432,489 9.36% mpt::mpt::rlp::<impl mpt::mpt::node::Node<M>>::resolve_digests
| 8,490 1,244,684 4.79% revm_context::journal::inner::JournalInner<ENTRY>::sload
| 7,685 190,488 0.73% revm_interpreter::instructions::bitwise::slt
| 7,514 162,582 0.63% revm_state::Account::is_empty
| 5,941 718,323 2.76% revm_handler::frame::EthFrame::init_with_context
| 4,845 1,083,019 4.17% hashbrown::rustc_entry::<impl hashbrown::map::HashMap<K,V,S,A>>::rustc_entry
DETAIL FUNCTION mpt::mpt::rlp::<impl mpt::mpt::node::Node<M>>::resolve_digests
------------------------------------------------------------------------------
STEPS 16,346,474 3.61%
COST 1,524,747,846 2.88%
| COST BY OPCODE COUNT COST % RANK
| -----------------------------------------------------------------
| OP eq 190,986 14,323,950 0.94%
| OP add 1,586,643 41,252,718 2.71% #3
| OP sub 32,807 2,460,525 0.16%
| OP and 587,670 44,075,250 2.89% #2
| OP or 800,641 60,048,075 3.94% #1
| OP xor 530,909 39,818,175 2.61% #4
| OP add_w 202,807 15,210,525 1.00%
| OP sll 445,215 24,041,610 1.58%
| OP srl 115,294 6,225,876 0.41%
| OP muluh 100,299 9,528,405 0.62%
| OP mul 215,593 20,481,335 1.34%
| TOP STEP CALLERS (calls, steps)
| -------------------------------
| 564 10,185,354 62.31% <sparsestate::SparseState as reth_stateless::trie::StatelessTrie>::account
| 6 228 0.00% sparsestate::SparseState::storage_trie_mut
| 1 6,161,463 37.69% <sparsestate::SparseState as reth_stateless::trie::StatelessTrie>::new
DETAIL FUNCTION revm_bytecode::legacy::analysis::analyze_legacy
---------------------------------------------------------------
STEPS 14,122,775 3.12%
COST 1,373,488,041 2.59%
| COST BY OPCODE COUNT COST % RANK
| -----------------------------------------------------------------
| OP ltu 1,863,151 139,736,325 10.17% #1
| OP lt 530,116 39,758,700 2.89% #4
| OP eq 955 71,625 0.01%
| OP add 2,468,585 64,183,210 4.67% #3
| OP sub 109,523 8,214,225 0.60%
| OP and 105,667 7,925,025 0.58%
| OP sll 462 24,948 0.00%
| OP srl 628 33,912 0.00%
| OP sra 1,852,485 100,034,190 7.28% #2
| TOP STEP CALLERS (calls, steps)
| -------------------------------
| 320 14,123,095 100.00% revm_bytecode::legacy::analyzed::LegacyAnalyzedBytecode::analyze
DETAIL FUNCTION core::array::<impl core::hash::Hash for [T; N]>::hash
---------------------------------------------------------------------
STEPS 12,211,466 2.70%
COST 1,270,941,831 2.40%
| COST BY OPCODE COUNT COST % RANK
| -----------------------------------------------------------------
| OP lt 103,487 7,761,525 0.61%
| OP add 103,487 2,690,662 0.21%
| OP and 103,487 7,761,525 0.61%
| OP or 3,095,191 232,139,325 18.27% #1
| OP xor 310,461 23,284,575 1.83% #3
| OP sll 517,435 27,941,490 2.20% #2
| OP srl 206,974 11,176,596 0.88% #4
| OP sra 103,487 5,588,298 0.44%
| OP muluh 103,487 9,831,265 0.77%
| OP mul 103,487 9,831,265 0.77%
| TOP STEP CALLERS (calls, steps)
| -------------------------------
| 100,299 11,935,581 97.74% mpt::mpt::rlp::<impl mpt::mpt::node::Node<M>>::resolve_digests
| 1,951 232,169 1.90% <sparsestate::SparseState as reth_stateless::trie::StatelessTrie>::storage
| 892 106,148 0.87% hashbrown::raw::RawTable<T,A>::reserve_rehash
| 345 41,055 0.34% <sparsestate::SparseState as reth_stateless::trie::StatelessTrie>::calculate_state_root
DETAIL FUNCTION memset
----------------------
STEPS 12,079,327 2.67%
COST 1,182,404,366 2.23%
| COST BY OPCODE COUNT COST % RANK
| -----------------------------------------------------------------
| OP ltu 3,036,962 227,772,150 19.26% #1
| OP add 1,593,758 41,437,708 3.50% #2
| OP sub 223 16,725 0.00%
| OP and 131,316 9,848,700 0.83% #4
| OP or 1,334 100,050 0.01%
| OP sub_w 39,968 2,997,600 0.25%
| OP sll 125,860 6,796,440 0.57%
| OP muluh 124,526 11,829,970 1.00% #3
| TOP STEP CALLERS (calls, steps)
| -------------------------------
| 87,945 6,786,656 56.18% alloy_primitives::utils::keccak256::keccak256
| 14,059 988,942 8.19% <revm_interpreter::interpreter::shared_memory::SharedMemory as revm_interpreter::interpreter_types::MemoryTr>::resize
| 13,493 3,229,570 26.74% __rustc::__rdl_alloc_zeroed
| 8,259 569,871 4.72% mpt::mpt::rlp::<impl alloy_rlp::decode::Decodable for mpt::mpt::node::Node<M>>::decode
| 2,562 122,871 1.02% aurora_engine_modexp::mpnat::MPNat::modpow_montgomery
| 1,792 59,136 0.49% aurora_engine_modexp::arith::monsq
| 1,784 57,013 0.47% ruint::div::<impl ruint::Uint<_,_>>::div_rem_by_ref
| 930 39,252 0.32% hashbrown::raw::RawTable<T,A>::reserve_rehash
| 741 40,014 0.33% <k256::arithmetic::affine::AffinePoint as elliptic_curve::sec1::ToEncodedPoint<k256::Secp256k1>>::to_encoded_point
| 612 28,755 0.24% hashbrown::raw::RawTable<T,A>::reserve_rehash
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment