1- //! SmolStr vs String benchmarks.
21use criterion:: { criterion_group, criterion_main, Criterion } ;
32use rand:: distr:: { Alphanumeric , SampleString } ;
43use smol_str:: { format_smolstr, SmolStr , StrExt , ToSmolStr } ;
@@ -15,16 +14,11 @@ fn format_bench(c: &mut Criterion) {
1514 let str_len = len. checked_sub ( n. to_smolstr ( ) . len ( ) ) . unwrap ( ) ;
1615 let str = Alphanumeric . sample_string ( & mut rand:: rng ( ) , str_len) ;
1716
18- c. bench_function ( & format ! ( "SmolStr format_smolstr! len={len}" ) , |b| {
17+ c. bench_function ( & format ! ( "format_smolstr! len={len}" ) , |b| {
1918 let mut v = <_ >:: default ( ) ;
2019 b. iter ( || v = format_smolstr ! ( "{str}-{n}" ) ) ;
2120 assert_eq ! ( v, format!( "{str}-{n}" ) ) ;
2221 } ) ;
23- c. bench_function ( & format ! ( "std format! len={len}" ) , |b| {
24- let mut v = <_ >:: default ( ) ;
25- b. iter ( || v = format ! ( "{str}-{n}" ) ) ;
26- assert_eq ! ( v, format!( "{str}-{n}" ) ) ;
27- } ) ;
2822 }
2923}
3024
@@ -37,11 +31,6 @@ fn from_str_bench(c: &mut Criterion) {
3731 b. iter ( || v = SmolStr :: from ( black_box ( & str) ) ) ;
3832 assert_eq ! ( v, str ) ;
3933 } ) ;
40- c. bench_function ( & format ! ( "std String::from len={len}" ) , |b| {
41- let mut v = <_ >:: default ( ) ;
42- b. iter ( || v = String :: from ( black_box ( & str) ) ) ;
43- assert_eq ! ( v, str ) ;
44- } ) ;
4534 }
4635}
4736
@@ -55,11 +44,6 @@ fn clone_bench(c: &mut Criterion) {
5544 b. iter ( || v = smolstr. clone ( ) ) ;
5645 assert_eq ! ( v, str ) ;
5746 } ) ;
58- c. bench_function ( & format ! ( "std String::clone len={len}" ) , |b| {
59- let mut v = <_ >:: default ( ) ;
60- b. iter ( || v = str. clone ( ) ) ;
61- assert_eq ! ( v, str ) ;
62- } ) ;
6347 }
6448}
6549
@@ -73,11 +57,6 @@ fn eq_bench(c: &mut Criterion) {
7357 b. iter ( || v = smolstr == black_box ( & str) ) ;
7458 assert ! ( v) ;
7559 } ) ;
76- c. bench_function ( & format ! ( "std String::eq len={len}" ) , |b| {
77- let mut v = false ;
78- b. iter ( || v = & str == black_box ( & str) ) ;
79- assert ! ( v) ;
80- } ) ;
8160 }
8261}
8362
@@ -90,16 +69,11 @@ fn to_lowercase_bench(c: &mut Criterion) {
9069 str. push ( END_CHAR ) ;
9170 let str = str. as_str ( ) ;
9271
93- c. bench_function ( & format ! ( "SmolStr to_lowercase_smolstr len={len}" ) , |b| {
72+ c. bench_function ( & format ! ( "to_lowercase_smolstr len={len}" ) , |b| {
9473 let mut v = <_ >:: default ( ) ;
9574 b. iter ( || v = str. to_lowercase_smolstr ( ) ) ;
9675 assert_eq ! ( v, str . to_lowercase( ) ) ;
9776 } ) ;
98- c. bench_function ( & format ! ( "std to_lowercase len={len}" ) , |b| {
99- let mut v = <_ >:: default ( ) ;
100- b. iter ( || v = str. to_lowercase ( ) ) ;
101- assert_eq ! ( v, str . to_lowercase( ) ) ;
102- } ) ;
10377 }
10478}
10579
@@ -108,17 +82,9 @@ fn to_ascii_lowercase_bench(c: &mut Criterion) {
10882 let str = Alphanumeric . sample_string ( & mut rand:: rng ( ) , len) ;
10983 let str = str. as_str ( ) ;
11084
111- c. bench_function (
112- & format ! ( "SmolStr to_ascii_lowercase_smolstr len={len}" ) ,
113- |b| {
114- let mut v = <_ >:: default ( ) ;
115- b. iter ( || v = str. to_ascii_lowercase_smolstr ( ) ) ;
116- assert_eq ! ( v, str . to_ascii_lowercase( ) ) ;
117- } ,
118- ) ;
119- c. bench_function ( & format ! ( "std to_ascii_lowercase len={len}" ) , |b| {
85+ c. bench_function ( & format ! ( "to_ascii_lowercase_smolstr len={len}" ) , |b| {
12086 let mut v = <_ >:: default ( ) ;
121- b. iter ( || v = str. to_ascii_lowercase ( ) ) ;
87+ b. iter ( || v = str. to_ascii_lowercase_smolstr ( ) ) ;
12288 assert_eq ! ( v, str . to_ascii_lowercase( ) ) ;
12389 } ) ;
12490 }
@@ -131,16 +97,11 @@ fn replace_bench(c: &mut Criterion) {
13197 + & Alphanumeric . sample_string ( & mut rand:: rng ( ) , len - 1 - len / 2 ) ;
13298 let str = s_dash_s. as_str ( ) ;
13399
134- c. bench_function ( & format ! ( "SmolStr replace_smolstr len={len}" ) , |b| {
100+ c. bench_function ( & format ! ( "replace_smolstr len={len}" ) , |b| {
135101 let mut v = <_ >:: default ( ) ;
136102 b. iter ( || v = str. replace_smolstr ( "-" , "_" ) ) ;
137103 assert_eq ! ( v, str . replace( "-" , "_" ) ) ;
138104 } ) ;
139- c. bench_function ( & format ! ( "std replace len={len}" ) , |b| {
140- let mut v = <_ >:: default ( ) ;
141- b. iter ( || v = str. replace ( "-" , "_" ) ) ;
142- assert_eq ! ( v, str . replace( "-" , "_" ) ) ;
143- } ) ;
144105 }
145106}
146107
0 commit comments