File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change @@ -1469,3 +1469,38 @@ impl PhantomKeysManager {
14691469pub fn dyn_sign ( ) {
14701470 let _signer: Box < dyn EcdsaChannelSigner > ;
14711471}
1472+
1473+ #[ cfg( all( test, feature = "_bench_unstable" , not( feature = "no-std" ) ) ) ]
1474+ mod benches {
1475+ use std:: sync:: Arc ;
1476+ use std:: thread;
1477+ use std:: time:: Duration ;
1478+ use bitcoin:: blockdata:: constants:: genesis_block;
1479+ use bitcoin:: Network ;
1480+ use crate :: chain:: keysinterface:: { EntropySource , KeysManager } ;
1481+
1482+ use test:: Bencher ;
1483+
1484+ #[ bench]
1485+ fn bench_get_secure_random_bytes ( bench : & mut Bencher ) {
1486+ let seed = [ 0u8 ; 32 ] ;
1487+ let now = Duration :: from_secs ( genesis_block ( Network :: Testnet ) . header . time as u64 ) ;
1488+ let keys_manager = Arc :: new ( KeysManager :: new ( & seed, now. as_secs ( ) , now. subsec_micros ( ) ) ) ;
1489+
1490+ for _ in 1 ..5 {
1491+ let keys_manager_clone = Arc :: clone ( & keys_manager) ;
1492+ thread:: spawn ( move || {
1493+ loop {
1494+ keys_manager_clone. get_secure_random_bytes ( ) ;
1495+ }
1496+ } ) ;
1497+ }
1498+
1499+ bench. iter ( || {
1500+ for _ in 1 ..100 {
1501+ keys_manager. get_secure_random_bytes ( ) ;
1502+ }
1503+ } )
1504+ }
1505+
1506+ }
You can’t perform that action at this time.
0 commit comments