File tree 1 file changed +44
-0
lines changed
1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change @@ -88,3 +88,47 @@ macro_rules! sample_indices {
88
88
sample_indices ! ( misc_sample_indices_10_of_1k, 10 , 1000 ) ;
89
89
sample_indices ! ( misc_sample_indices_50_of_1k, 50 , 1000 ) ;
90
90
sample_indices ! ( misc_sample_indices_100_of_1k, 100 , 1000 ) ;
91
+
92
+ #[ bench]
93
+ fn gen_1k_iter_repeat ( b : & mut Bencher ) {
94
+ use std:: iter;
95
+ let mut rng = SmallRng :: from_rng ( & mut thread_rng ( ) ) . unwrap ( ) ;
96
+ b. iter ( || {
97
+ let v: Vec < u64 > = iter:: repeat ( ( ) ) . map ( |( ) | rng. gen ( ) ) . take ( 128 ) . collect ( ) ;
98
+ black_box ( v) ;
99
+ } ) ;
100
+ b. bytes = 1024 ;
101
+ }
102
+
103
+ #[ bench]
104
+ #[ allow( deprecated) ]
105
+ fn gen_1k_gen_iter ( b : & mut Bencher ) {
106
+ let mut rng = SmallRng :: from_rng ( & mut thread_rng ( ) ) . unwrap ( ) ;
107
+ b. iter ( || {
108
+ let v: Vec < u64 > = rng. gen_iter ( ) . take ( 128 ) . collect ( ) ;
109
+ black_box ( v) ;
110
+ } ) ;
111
+ b. bytes = 1024 ;
112
+ }
113
+
114
+ #[ bench]
115
+ fn gen_1k_sample_iter ( b : & mut Bencher ) {
116
+ use rand:: distributions:: { Distribution , Uniform } ;
117
+ let mut rng = SmallRng :: from_rng ( & mut thread_rng ( ) ) . unwrap ( ) ;
118
+ b. iter ( || {
119
+ let v: Vec < u64 > = Uniform . sample_iter ( & mut rng) . take ( 128 ) . collect ( ) ;
120
+ black_box ( v) ;
121
+ } ) ;
122
+ b. bytes = 1024 ;
123
+ }
124
+
125
+ #[ bench]
126
+ fn gen_1k_fill ( b : & mut Bencher ) {
127
+ let mut rng = SmallRng :: from_rng ( & mut thread_rng ( ) ) . unwrap ( ) ;
128
+ let mut buf = [ 0u64 ; 128 ] ;
129
+ b. iter ( || {
130
+ rng. fill ( & mut buf[ ..] ) ;
131
+ black_box ( buf) ;
132
+ } ) ;
133
+ b. bytes = 1024 ;
134
+ }
You can’t perform that action at this time.
0 commit comments