1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-25 15:29:32 -05:00
denoland-deno/bench_util/benches/utf8.rs
2024-01-01 19:58:21 +00:00

115 lines
2.5 KiB
Rust

// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
use deno_bench_util::bench_js_sync_with;
use deno_bench_util::bench_or_profile;
use deno_bench_util::bencher::benchmark_group;
use deno_bench_util::bencher::Bencher;
use deno_bench_util::BenchOptions;
use deno_core::Extension;
use deno_core::ExtensionFileSource;
use deno_core::ExtensionFileSourceCode;
fn setup() -> Vec<Extension> {
vec![Extension {
name: "bench_setup",
js_files: std::borrow::Cow::Borrowed(&[ExtensionFileSource {
specifier: "ext:bench_setup/setup.js",
code: ExtensionFileSourceCode::IncludedInBinary(
r#"
const hello = "hello world\n";
const hello1k = hello.repeat(1e3);
const hello1m = hello.repeat(1e6);
const helloEncoded = Deno.core.encode(hello);
const hello1kEncoded = Deno.core.encode(hello1k);
const hello1mEncoded = Deno.core.encode(hello1m);
"#,
),
}]),
..Default::default()
}]
}
fn bench_utf8_encode_12_b(b: &mut Bencher) {
bench_js_sync_with(
b,
r#"Deno.core.encode(hello);"#,
setup,
BenchOptions {
benching_inner: 1,
..Default::default()
},
);
}
fn bench_utf8_encode_12_kb(b: &mut Bencher) {
bench_js_sync_with(
b,
r#"Deno.core.encode(hello1k);"#,
setup,
BenchOptions {
benching_inner: 1,
..Default::default()
},
);
}
fn bench_utf8_encode_12_mb(b: &mut Bencher) {
bench_js_sync_with(
b,
r#"Deno.core.encode(hello1m);"#,
setup,
BenchOptions {
benching_inner: 1,
profiling_inner: 10,
profiling_outer: 10,
},
);
}
fn bench_utf8_decode_12_b(b: &mut Bencher) {
bench_js_sync_with(
b,
r#"Deno.core.decode(helloEncoded);"#,
setup,
BenchOptions {
benching_inner: 1,
..Default::default()
},
);
}
fn bench_utf8_decode_12_kb(b: &mut Bencher) {
bench_js_sync_with(
b,
r#"Deno.core.decode(hello1kEncoded);"#,
setup,
BenchOptions {
benching_inner: 1,
..Default::default()
},
);
}
fn bench_utf8_decode_12_mb(b: &mut Bencher) {
bench_js_sync_with(
b,
r#"Deno.core.decode(hello1mEncoded);"#,
setup,
BenchOptions {
benching_inner: 1,
profiling_inner: 10,
profiling_outer: 10,
},
);
}
benchmark_group!(
benches,
bench_utf8_encode_12_b,
bench_utf8_encode_12_kb,
bench_utf8_encode_12_mb,
bench_utf8_decode_12_b,
bench_utf8_decode_12_kb,
bench_utf8_decode_12_mb,
);
bench_or_profile!(benches);