Benchmark results for Solana runtime operations.
- CU Consumed: Total compute units consumed by the profiled function
- CU Adjusted: Actual operation cost with baseline profiling overhead subtracted (CU Consumed - Baseline CU)
- Baseline CU: CU consumed by an empty profiled function (
#[profile]macro overhead)
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| baseline_empty_function | 6 | N/A |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| array_u64_10_index | 9 | 3 |
| array_u64_10_get | 6 | 0 |
| array_u64_10_get_ok_or | 6 | 0 |
| array_u64_10_if_let_get | 9 | 3 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| array_u8_32_index | 9 | 3 |
| array_u8_32_get | 6 | 0 |
| array_u8_32_get_ok_or | 6 | 0 |
| array_u8_32_if_let_get | 9 | 3 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| vec_u64_10_index | 9 | 3 |
| vec_u64_10_get | 8 | 2 |
| vec_u64_10_get_ok_or | 8 | 2 |
| vec_u64_10_if_let_get | 9 | 3 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| vec_u8_32_index | 9 | 3 |
| vec_u8_32_get | 8 | 2 |
| vec_u8_32_get_ok_or | 8 | 2 |
| vec_u8_32_if_let_get | 9 | 3 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| is_borrowed | 13 | 7 |
| borrow_lamports_unchecked | 10 | 4 |
| borrow_mut_lamports_unchecked | 10 | 4 |
| borrow_data_unchecked | 9 | 3 |
| borrow_mut_data_unchecked | 9 | 3 |
| try_borrow_lamports | 16 | 10 |
| try_borrow_mut_lamports | 11 | 5 |
| can_borrow_lamports | 9 | 3 |
| can_borrow_mut_lamports | 9 | 3 |
| try_borrow_data | 15 | 9 |
| try_borrow_mut_data | 12 | 6 |
| can_borrow_data | 9 | 3 |
| can_borrow_mut_data | 9 | 3 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| is_signer | 13 | 7 |
| is_writable | 12 | 6 |
| executable | 13 | 7 |
| data_is_empty | 13 | 7 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| data_len | 10 | 4 |
| lamports | 10 | 4 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| key | 10 | 4 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| owner | 10 | 4 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| is_owned_by | 31 | 25 |
| assign | 17 | 11 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| realloc | 17 | 11 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| assign_u8 | 9 | 3 |
| assign_u64 | 16 | 10 |
| assign_pubkey | 108 | 102 |
| assign_10_u8 | 9 | 3 |
| assign_10_u64 | 16 | 10 |
| assign_10_pubkey | 108 | 102 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| new | 10 | 4 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| with_capacity_10 | 8 | 2 |
| with_capacity_100 | 27 | 21 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| u8_new | 7 | 1 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| push_pubkey | 50 | 44 |
| push_u64 | 43 | 37 |
| push_u8 | 25 | 19 |
| push_10_u8 | 10 | 4 |
| push_10_u64 | 17 | 11 |
| push_10_pubkey | 88 | 82 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| u8_with_capacity_10 | 7 | 1 |
| u8_with_capacity_100 | 7 | 1 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| add_u8 | 7 | 1 |
| add_u16 | 7 | 1 |
| add_u32 | 8 | 2 |
| add_u64 | 8 | 2 |
| add_u128 | 10 | 4 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| div_u8 | 7 | 1 |
| div_u16 | 7 | 1 |
| div_u32 | 8 | 2 |
| div_u64 | 8 | 2 |
| div_u128 | 10 | 4 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| mul_u8 | 7 | 1 |
| mul_u16 | 7 | 1 |
| mul_u32 | 8 | 2 |
| mul_u64 | 8 | 2 |
| mul_u128 | 10 | 4 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| sub_u8 | 7 | 1 |
| sub_u16 | 7 | 1 |
| sub_u32 | 8 | 2 |
| sub_u64 | 8 | 2 |
| sub_u128 | 10 | 4 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| u16_as_u8 | 7 | 1 |
| u16_as_u32 | 7 | 1 |
| u16_as_u64 | 7 | 1 |
| u16_as_usize | 7 | 1 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| u32_as_u8 | 7 | 1 |
| u32_as_u16 | 7 | 1 |
| u32_as_u64 | 7 | 1 |
| u32_as_usize | 7 | 1 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| u64_as_u8 | 7 | 1 |
| u64_as_u16 | 7 | 1 |
| u64_as_u32 | 7 | 1 |
| u64_as_usize | 7 | 1 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| u8_as_u16 | 7 | 1 |
| u8_as_u32 | 7 | 1 |
| u8_as_u64 | 7 | 1 |
| u8_as_usize | 7 | 1 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| try_into_usize_to_u64_unwrap | 7 | 1 |
| try_into_usize_to_u64_map_err | 6 | 0 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| try_into_slice_to_array_32_unwrap | 15 | 9 |
| try_into_slice_to_array_32_map_err | 6 | 0 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| try_into_u64_to_usize_unwrap | 7 | 1 |
| try_into_u64_to_usize_map_err | 6 | 0 |
| try_into_u32_to_usize_unwrap | 7 | 1 |
| try_into_u32_to_usize_map_err | 6 | 0 |
| try_into_u16_to_usize_unwrap | 7 | 1 |
| try_into_u16_to_usize_map_err | 6 | 0 |
| try_into_u8_to_usize_unwrap | 7 | 1 |
| try_into_u8_to_usize_map_err | 6 | 0 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| account_meta_array_10_loop | 201 | 195 |
| account_info_array_10_ref_loop | 6 | 0 |
| account_info_array_10_clone_loop | 8 | 2 |
| account_info_array_10_move_loop | 8 | 2 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| account_meta_array_10 | 6 | 0 |
| account_info_array_10_ref | 6 | 0 |
| account_info_array_10_clone | 6 | 0 |
| account_info_array_10_move | 6 | 0 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| arrayvec_push_account_meta_10 | 182 | 176 |
| arrayvec_push_account_info_10_ref | 6 | 0 |
| arrayvec_push_account_info_10_clone | 8 | 2 |
| arrayvec_push_account_info_10_move | 8 | 2 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| checked_add_u8_unwrap | 7 | 1 |
| checked_add_u8_ok_or | 6 | 0 |
| checked_add_u8_ok_or_else | 6 | 0 |
| checked_add_u8_unwrap_or_default | 8 | 2 |
| checked_add_u8_unwrap_or | 8 | 2 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| if_let_some_u8 | 6 | 0 |
| if_let_some_array | 15 | 9 |
| if_let_some_pubkey | 15 | 9 |
| if_let_some_array_ref | 6 | 0 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| pubkey_ref_map_deref | 6 | 0 |
| pubkey_as_ref_map_convert | 6 | 0 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| slice_get_array_unwrap | 15 | 9 |
| slice_get_array_ok_or | 6 | 0 |
| slice_get_array_ok_or_else | 6 | 0 |
| slice_get_array_unwrap_or_default | 15 | 9 |
| slice_get_array_unwrap_or | 15 | 9 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| array_u8_32_ref | 7 | 1 |
| array_u8_32 | 6 | 0 |
| array_u16_32 | 7 | 1 |
| array_u32_32 | 7 | 1 |
| array_u64_32 | 7 | 1 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| u8_neq | 9 | 3 |
| u16_neq | 9 | 3 |
| u32_neq | 10 | 4 |
| u64_neq | 10 | 4 |
| u128_neq | 13 | 7 |
| array_u8_32_neq_ref | 35 | 29 |
| array_u8_32_neq | 31 | 25 |
| array_u8_32_neq_deref | 35 | 29 |
| array_u16_32_neq | 33 | 27 |
| array_u32_32_neq | 34 | 28 |
| array_u64_32_neq | 34 | 28 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| u8 | 7 | 1 |
| u16 | 7 | 1 |
| u32 | 7 | 1 |
| u64 | 7 | 1 |
| u128 | 7 | 1 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| msg10_chars | 110 | 104 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| clock_get_slot | 171 | 165 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| sysvar_rent_exemption_165 | 151 | 145 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| add_u8 | 7 | 1 |
| add_u16 | 7 | 1 |
| add_u32 | 7 | 1 |
| add_u64 | 7 | 1 |
| add_u128 | 8 | 2 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| mul_u8 | 7 | 1 |
| mul_u16 | 7 | 1 |
| mul_u32 | 7 | 1 |
| mul_u64 | 7 | 1 |
| mul_u128 | 8 | 2 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| sub_u8 | 7 | 1 |
| sub_u16 | 7 | 1 |
| sub_u32 | 7 | 1 |
| sub_u64 | 7 | 1 |
| sub_u128 | 8 | 2 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| borsh_deserialize | 427 | 421 |
| zero_copy_deserialize | 130 | 124 |
| wincode_deserialize | 594 | 588 |
| bincode_deserialize | 3230 | 3224 |
| borsh1_deserialize | 427 | 421 |
| rkyv_zero_copy_deserialize | 178 | 172 |
| wincode_shortvec_deserialize | 612 | 606 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| msg10_chars | 110 | 104 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| msg_program_id | 6954 | 6948 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| pubkey_new_from_array | 15 | 9 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| pubkey_to_bytes | 15 | 9 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| add_assign_u8 | 7 | 1 |
| add_assign_u16 | 7 | 1 |
| add_assign_u32 | 7 | 1 |
| add_assign_u64 | 7 | 1 |
| add_assign_u128 | 9 | 3 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| add_u8 | 6 | 0 |
| add_u16 | 6 | 0 |
| add_u32 | 6 | 0 |
| add_u64 | 6 | 0 |
| add_u128 | 6 | 0 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| div_u8 | 6 | 0 |
| div_u16 | 6 | 0 |
| div_u32 | 6 | 0 |
| div_u64 | 6 | 0 |
| div_u128 | 6 | 0 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| mul_u8 | 6 | 0 |
| mul_u16 | 6 | 0 |
| mul_u32 | 6 | 0 |
| mul_u64 | 6 | 0 |
| mul_u128 | 6 | 0 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| sub_u8 | 6 | 0 |
| sub_u16 | 6 | 0 |
| sub_u32 | 6 | 0 |
| sub_u64 | 6 | 0 |
| sub_u128 | 6 | 0 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| sub_assign_u8 | 7 | 1 |
| sub_assign_u16 | 7 | 1 |
| sub_assign_u32 | 7 | 1 |
| sub_assign_u64 | 7 | 1 |
| sub_assign_u128 | 9 | 3 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| u8_new | 9 | 3 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| push_u8 | 73 | 67 |
| push_u64 | 78 | 72 |
| push_pubkey | 85 | 79 |
| push_10_u8 | 202 | 196 |
| push_10_u64 | 313 | 307 |
| push_10_pubkey | 380 | 374 |
| push_u8_with_capacity | 120 | 114 |
| push_u64_with_capacity | 120 | 114 |
| push_pubkey_with_capacity | 128 | 122 |
| push_10_u8_with_capacity | 153 | 147 |
| push_10_u64_with_capacity | 149 | 143 |
| push_10_pubkey_with_capacity | 218 | 212 |
| Function | CU Consumed | CU Adjusted |
|---|---|---|
| u8_with_capacity_10 | 113 | 107 |
| u8_with_capacity_100 | 113 | 107 |