Skip to content

Commit 4908fc9

Browse files
authored
Add benchmarks with SIMD optimized vb64 (#93)
1 parent 14391e0 commit 4908fc9

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

cmp/Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ build = "build.rs"
88
publish = false
99

1010
[dependencies]
11-
base64 = { git = "https://github.com/alicemaz/rust-base64" }
11+
base64 = { git = "https://github.com/marshallpierce/rust-base64" }
1212
data-encoding = { path = "../lib" }
1313
libc = "0.2"
14+
vb64 = { git = "https://github.com/mcy/vb64" }
1415

1516
[build-dependencies]
1617
cc = "1"

cmp/benches/lib.rs

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,42 +64,54 @@ fn b05_encode_crate(b: &mut Bencher) {
6464

6565
#[bench]
6666
fn b06_encode_base64(b: &mut Bencher) {
67-
encode(b, |x| base64::encode(x));
67+
use base64::Engine;
68+
encode(b, |x| base64::engine::general_purpose::STANDARD.encode(x));
6869
}
6970

7071
#[bench]
71-
fn b07_decode_mut_seq_gcc(b: &mut Bencher) {
72+
fn b07_encode_vb64(b: &mut Bencher) {
73+
encode(b, |x| vb64::encode(x));
74+
}
75+
76+
#[bench]
77+
fn b08_decode_mut_seq_gcc(b: &mut Bencher) {
7278
decode_mut(b, cmp::base64_decode_seq_gcc);
7379
}
7480

7581
#[bench]
76-
fn b08_decode_mut_seq_clang(b: &mut Bencher) {
82+
fn b09_decode_mut_seq_clang(b: &mut Bencher) {
7783
decode_mut(b, cmp::base64_decode_seq_clang);
7884
}
7985

8086
#[bench]
81-
fn b09_decode_mut_par_clang(b: &mut Bencher) {
87+
fn b10_decode_mut_par_clang(b: &mut Bencher) {
8288
decode_mut(b, cmp::base64_decode_par_clang);
8389
}
8490

8591
#[bench]
86-
fn b10_decode_mut_par_gcc(b: &mut Bencher) {
92+
fn b11_decode_mut_par_gcc(b: &mut Bencher) {
8793
decode_mut(b, cmp::base64_decode_par_gcc);
8894
}
8995

9096
#[bench]
91-
fn b11_decode_mut_crate(b: &mut Bencher) {
97+
fn b12_decode_mut_crate(b: &mut Bencher) {
9298
let base64_decode = |input: &[u8], output: &mut [u8]| BASE64.decode_mut(input, output);
9399
decode_mut(b, base64_decode);
94100
}
95101

96102
#[bench]
97-
fn b12_decode_crate(b: &mut Bencher) {
103+
fn b13_decode_crate(b: &mut Bencher) {
98104
let base64_decode = |input: &[u8]| BASE64.decode(input);
99105
decode(b, base64_decode);
100106
}
101107

102108
#[bench]
103-
fn b13_decode_base64(b: &mut Bencher) {
104-
decode(b, |x| base64::decode(x));
109+
fn b14_decode_base64(b: &mut Bencher) {
110+
use base64::Engine;
111+
decode(b, |x| base64::engine::general_purpose::STANDARD.decode(x));
112+
}
113+
114+
#[bench]
115+
fn b15_decode_vb64(b: &mut Bencher) {
116+
decode(b, |x| vb64::decode(x));
105117
}

0 commit comments

Comments
 (0)