use criterion::{criterion_group, criterion_main, Criterion};
use rustc_hex::{FromHex, ToHex};
const DATA: &[u8] = include_bytes!("../src/lib.rs" );
fn bench_encode(c: &mut Criterion) {
c.bench_function("hex_encode" , |b| b.iter(|| hex::encode(DATA)));
c.bench_function("rustc_hex_encode" , |b| b.iter(|| DATA.to_hex::<String>()));
c.bench_function("faster_hex_encode" , |b| {
b.iter(|| faster_hex::hex_string(DATA).unwrap())
});
c.bench_function("faster_hex_encode_fallback" , |b| {
b.iter(|| {
let mut dst = vec![0 ; DATA.len() * 2 ];
faster_hex::hex_encode_fallback(DATA, &mut dst);
dst
})
});
}
fn bench_decode(c: &mut Criterion) {
c.bench_function("hex_decode" , |b| {
let hex = hex::encode(DATA);
b.iter(|| hex::decode(&hex).unwrap())
});
c.bench_function("rustc_hex_decode" , |b| {
let hex = DATA.to_hex::<String>();
b.iter(|| hex.from_hex::<Vec<u8>>().unwrap())
});
c.bench_function("faster_hex_decode" , move |b| {
let hex = faster_hex::hex_string(DATA).unwrap();
let len = DATA.len();
let mut dst = vec![0 ; len];
b.iter(|| faster_hex::hex_decode(hex.as_bytes(), &mut dst).unwrap())
});
c.bench_function("faster_hex_decode_unchecked" , |b| {
let hex = faster_hex::hex_string(DATA).unwrap();
let len = DATA.len();
let mut dst = vec![0 ; len];
b.iter(|| faster_hex::hex_decode_unchecked(hex.as_bytes(), &mut dst))
});
c.bench_function("faster_hex_decode_fallback" , |b| {
let hex = faster_hex::hex_string(DATA).unwrap();
let len = DATA.len();
let mut dst = vec![0 ; len];
b.iter(|| faster_hex::hex_decode_fallback(hex.as_bytes(), &mut dst))
});
}
criterion_group!(benches, bench_encode, bench_decode);
criterion_main!(benches);
Messung V0.5 in Prozent C=57 H=97 G=79
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-18)
¤
*© Formatika GbR, Deutschland