File tree 1 file changed +35
-0
lines changed
1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change @@ -1469,3 +1469,38 @@ impl PhantomKeysManager {
1469
1469
pub fn dyn_sign ( ) {
1470
1470
let _signer: Box < dyn EcdsaChannelSigner > ;
1471
1471
}
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