#! [allow(clippy::unreadable_literal)]
use criterion::{criterion_group, criterion_main, Criterion};
use std::f64;
use std::hint;
use std::io::Write;
fn do_bench(c: &mut Criterion, group_name: &str, float: f64) {
let mut group = c.benchmark_group(group_name);
group.bench_function("zmij" , |b| {
let mut buf = zmij::Buffer::new();
b.iter(move || {
let float = hint::black_box(float);
let formatted = buf.format_finite(float);
hint::black_box(formatted);
});
});
group.bench_function("ryu" , |b| {
let mut buf = ryu::Buffer::new();
b.iter(move || {
let float = hint::black_box(float);
let formatted = buf.format_finite(float);
hint::black_box(formatted);
});
});
group.bench_function("std::fmt" , |b| {
let mut buf = Vec::with_capacity(20 );
b.iter(|| {
buf.clear();
let float = hint::black_box(float);
write!(&mut buf, "{float}" ).unwrap();
hint::black_box(buf.as_slice());
});
});
group.finish();
}
fn bench(c: &mut Criterion) {
do_bench(c, "f64[0]" , 0 f64);
do_bench(c, "f64[short]" , 0 .1234 f64);
do_bench(c, "f64[medium]" , 0 .123456789 f64);
do_bench(c, "f64[e]" , f64::consts::E);
do_bench(c, "f64[max]" , f64::MAX);
}
criterion_group!(benches, bench);
criterion_main!(benches);
Messung V0.5 in Prozent C=94 H=100 G=96
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-08-25)
¤
*© Formatika GbR, Deutschland