refactor
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
This commit is contained in:
parent
ec7c61327c
commit
d38ca0de4c
|
@ -0,0 +1,56 @@
|
|||
use std::str::FromStr;
|
||||
|
||||
use anchor_lang::prelude::*;
|
||||
use fixed::types::I80F48;
|
||||
use solana_program::{log::sol_log_compute_units, program_memory::sol_memcmp};
|
||||
|
||||
#[derive(Accounts)]
|
||||
pub struct Benchmark {}
|
||||
|
||||
pub fn benchmark(_ctx: Context<Benchmark>) -> Result<()> {
|
||||
// 101000
|
||||
// 477
|
||||
sol_log_compute_units(); // 100422
|
||||
|
||||
sol_log_compute_units(); // 100321 -> 101
|
||||
|
||||
msg!("msg!"); // 100079+101 -> 203
|
||||
sol_log_compute_units(); // 100117
|
||||
|
||||
let pk1 = Pubkey::default(); // 10
|
||||
sol_log_compute_units(); // 100006
|
||||
let pk2 = Pubkey::default(); // 10
|
||||
sol_log_compute_units(); // 99895
|
||||
|
||||
let _ = pk1 == pk2; // 56
|
||||
sol_log_compute_units(); // 99739
|
||||
|
||||
let _ = sol_memcmp(&pk1.to_bytes(), &pk2.to_bytes(), 32); // 64
|
||||
sol_log_compute_units(); // 99574
|
||||
|
||||
let large_number = I80F48::from_str("777472127991.999999999999996").unwrap();
|
||||
let half = I80F48::MAX / 2;
|
||||
let max = I80F48::MAX;
|
||||
sol_log_compute_units(); // 92610
|
||||
|
||||
let _ = checked_math!(half + half); // 0
|
||||
sol_log_compute_units(); // 92509
|
||||
|
||||
let _ = checked_math!(max - max); // 0
|
||||
sol_log_compute_units(); // 92408
|
||||
|
||||
let _ = checked_math!(large_number * large_number); // 77
|
||||
sol_log_compute_units(); // 92230
|
||||
|
||||
// /
|
||||
let _ = checked_math!(I80F48::ZERO / max); // 839
|
||||
sol_log_compute_units(); // 91290
|
||||
|
||||
let _ = checked_math!(half / max); // 3438
|
||||
sol_log_compute_units(); // 87751
|
||||
|
||||
let _ = checked_math!(max / max); // 3457
|
||||
sol_log_compute_units(); // 84193
|
||||
|
||||
Ok(())
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
pub use self::margin_trade::*;
|
||||
pub use benchmark::*;
|
||||
pub use close_account::*;
|
||||
pub use create_account::*;
|
||||
pub use create_group::*;
|
||||
|
@ -19,6 +20,7 @@ pub use set_stub_oracle::*;
|
|||
pub use update_index::*;
|
||||
pub use withdraw::*;
|
||||
|
||||
mod benchmark;
|
||||
mod close_account;
|
||||
mod create_account;
|
||||
mod create_group;
|
||||
|
|
|
@ -23,10 +23,6 @@ declare_id!("m43thNJ58XCjL798ZSq6JGAG1BnWskhdq5or6kcnfsD");
|
|||
#[program]
|
||||
pub mod mango_v4 {
|
||||
|
||||
use std::str::FromStr;
|
||||
|
||||
use solana_program::{log::sol_log_compute_units, program_memory::sol_memcmp};
|
||||
|
||||
use super::*;
|
||||
|
||||
pub fn create_group(ctx: Context<CreateGroup>) -> Result<()> {
|
||||
|
@ -257,7 +253,7 @@ pub mod mango_v4 {
|
|||
// perp_cancel_all
|
||||
// perp_cancel_all_side
|
||||
// perp_force_cancel_order
|
||||
|
||||
|
||||
// liquidate_token_and_perp
|
||||
// liquidate_perp_and_perp
|
||||
|
||||
|
@ -265,57 +261,12 @@ pub mod mango_v4 {
|
|||
|
||||
// resolve_banktruptcy
|
||||
|
||||
|
||||
///
|
||||
/// benchmark
|
||||
///
|
||||
///
|
||||
pub fn benchmark(_ctx: Context<Benchmark>) -> Result<()> {
|
||||
// 101000
|
||||
// 477
|
||||
sol_log_compute_units(); // 100422
|
||||
|
||||
sol_log_compute_units(); // 100321 -> 101
|
||||
|
||||
msg!("msg!"); // 100079+101 -> 203
|
||||
sol_log_compute_units(); // 100117
|
||||
|
||||
let pk1 = Pubkey::default(); // 10
|
||||
sol_log_compute_units(); // 100006
|
||||
let pk2 = Pubkey::default(); // 10
|
||||
sol_log_compute_units(); // 99895
|
||||
|
||||
let _ = pk1 == pk2; // 56
|
||||
sol_log_compute_units(); // 99739
|
||||
|
||||
let _ = sol_memcmp(&pk1.to_bytes(), &pk2.to_bytes(), 32); // 64
|
||||
sol_log_compute_units(); // 99574
|
||||
|
||||
let large_number = I80F48::from_str("777472127991.999999999999996").unwrap();
|
||||
let half = I80F48::MAX / 2;
|
||||
let max = I80F48::MAX;
|
||||
sol_log_compute_units(); // 92610
|
||||
|
||||
let _ = checked_math!(half + half); // 0
|
||||
sol_log_compute_units(); // 92509
|
||||
|
||||
let _ = checked_math!(max - max); // 0
|
||||
sol_log_compute_units(); // 92408
|
||||
|
||||
let _ = checked_math!(large_number * large_number); // 77
|
||||
sol_log_compute_units(); // 92230
|
||||
|
||||
// /
|
||||
let _ = checked_math!(I80F48::ZERO / max); // 839
|
||||
sol_log_compute_units(); // 91290
|
||||
|
||||
let _ = checked_math!(half / max); // 3438
|
||||
sol_log_compute_units(); // 87751
|
||||
|
||||
let _ = checked_math!(max / max); // 3457
|
||||
sol_log_compute_units(); // 84193
|
||||
|
||||
Ok(())
|
||||
pub fn benchmark(ctx: Context<Benchmark>) -> Result<()> {
|
||||
instructions::benchmark(ctx)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -327,6 +278,3 @@ impl anchor_lang::Id for Mango {
|
|||
ID
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Accounts)]
|
||||
pub struct Benchmark {}
|
||||
|
|
Loading…
Reference in New Issue