1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-29 16:30:56 -05:00
denoland-deno/bench_util/benches/utf8.rs
Bartek Iwańczuk 60bf79c184
Revert "refactor(core): cleanup feature flags for js source inclusion… (#19490)
… (#19463)"

This reverts commit ceb03cfb03.

This is being reverted because it causes 3.5Mb increase in the binary
size,
due to runtime JS code being included in the binary, even though it's
already snapshotted.

CC @nayeemrmn
2023-06-13 22:36:16 +00:00

113 lines
2.4 KiB
Rust

// Copyright 2018-2023 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::builder("bench_setup")
.js(vec![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);
"#,
),
}])
.build()]
}
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);