diff options
author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2022-02-23 18:51:13 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-23 18:51:13 +0100 |
commit | 7122187bc7e29d972947cf6604eacca73f126449 (patch) | |
tree | 5ada97b562b5a62d013531e3e72b7c0bfd13ca38 /bench_util/benches/utf8.rs | |
parent | ee27b9dd7e8ef311c6bfaa3264f7b9908a784a24 (diff) |
bench: core.encode/decode (#13750)
Diffstat (limited to 'bench_util/benches/utf8.rs')
-rw-r--r-- | bench_util/benches/utf8.rs | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/bench_util/benches/utf8.rs b/bench_util/benches/utf8.rs new file mode 100644 index 000000000..021c409b8 --- /dev/null +++ b/bench_util/benches/utf8.rs @@ -0,0 +1,112 @@ +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; + +fn setup() -> Vec<Extension> { + vec![Extension::builder() + .js(vec![( + "setup.js", + Box::new(|| { + Ok( + 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); + "# + .into(), + ) + }), + )]) + .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); |