File tree Expand file tree Collapse file tree 2 files changed +37
-0
lines changed Expand file tree Collapse file tree 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>) {
6666 } ) ;
6767 } ) ;
6868
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+
6984 #[ cfg( any( target_arch = "x86" , target_arch = "x86_64" ) ) ]
7085 {
7186 use sliceslice:: x86:: DynamicAvx2Searcher ;
@@ -154,6 +169,19 @@ fn search_haystack<M: Measurement>(
154169 } ) ;
155170 } ) ;
156171
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+
157185 #[ cfg( any( target_arch = "x86" , target_arch = "x86_64" ) ) ]
158186 {
159187 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>) {
5757 } ,
5858 ) ;
5959
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+
6069 #[ cfg( any( target_arch = "x86" , target_arch = "x86_64" ) ) ]
6170 {
6271 use sliceslice:: x86:: DynamicAvx2Searcher ;
You can’t perform that action at this time.
0 commit comments