File tree 2 files changed +37
-0
lines changed
2 files changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -66,6 +66,21 @@ fn search_short_haystack<M: Measurement>(c: &mut Criterion<M>) {
66
66
} ) ;
67
67
} ) ;
68
68
69
+ group. bench_function ( "memchr::memmem::Finder::find" , |b| {
70
+ let finders = needles
71
+ . iter ( )
72
+ . map ( |& needle| memchr:: memmem:: Finder :: new ( needle. as_bytes ( ) ) )
73
+ . collect :: < Vec < _ > > ( ) ;
74
+
75
+ b. iter ( || {
76
+ for ( i, finder) in finders. iter ( ) . enumerate ( ) {
77
+ for haystack in & needles[ i..] {
78
+ black_box ( finder. find ( haystack. as_bytes ( ) ) ) ;
79
+ }
80
+ }
81
+ } ) ;
82
+ } ) ;
83
+
69
84
#[ cfg( any( target_arch = "x86" , target_arch = "x86_64" ) ) ]
70
85
{
71
86
use sliceslice:: x86:: DynamicAvx2Searcher ;
@@ -154,6 +169,19 @@ fn search_haystack<M: Measurement>(
154
169
} ) ;
155
170
} ) ;
156
171
172
+ group. bench_function ( "memchr::memmem::Finder::find" , |b| {
173
+ let finders = needles
174
+ . iter ( )
175
+ . map ( |needle| memchr:: memmem:: Finder :: new ( needle. as_bytes ( ) ) )
176
+ . collect :: < Vec < _ > > ( ) ;
177
+
178
+ b. iter ( || {
179
+ for finder in & finders {
180
+ black_box ( finder. find ( haystack) ) ;
181
+ }
182
+ } ) ;
183
+ } ) ;
184
+
157
185
#[ cfg( any( target_arch = "x86" , target_arch = "x86_64" ) ) ]
158
186
{
159
187
use sliceslice:: x86:: DynamicAvx2Searcher ;
Original file line number Diff line number Diff line change @@ -57,6 +57,15 @@ fn search<M: Measurement>(c: &mut Criterion<M>) {
57
57
} ,
58
58
) ;
59
59
60
+ group. bench_with_input (
61
+ BenchmarkId :: new ( "memchr::memmem::Finder::find" , parameter) ,
62
+ & size,
63
+ |b, _| {
64
+ let finder = memchr:: memmem:: Finder :: new ( needle) ;
65
+ b. iter ( || black_box ( finder. find ( haystack) ) ) ;
66
+ } ,
67
+ ) ;
68
+
60
69
#[ cfg( any( target_arch = "x86" , target_arch = "x86_64" ) ) ]
61
70
{
62
71
use sliceslice:: x86:: DynamicAvx2Searcher ;
You can’t perform that action at this time.
0 commit comments