diff options
| author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2021-05-19 19:41:23 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-19 19:41:23 +0200 |
| commit | 24da0aa37db14b0d40815222cf25b34055b13a6a (patch) | |
| tree | d421cad2033e44bc0bc07521163613c3b1dd2da0 /bench_util/benches/op_baseline.rs | |
| parent | df7639c09664207df4aeb1e66e4bad405eed8cc3 (diff) | |
tooling: re-enable bench_util (#10674)
Diffstat (limited to 'bench_util/benches/op_baseline.rs')
| -rw-r--r-- | bench_util/benches/op_baseline.rs | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/bench_util/benches/op_baseline.rs b/bench_util/benches/op_baseline.rs new file mode 100644 index 000000000..ecce90bec --- /dev/null +++ b/bench_util/benches/op_baseline.rs @@ -0,0 +1,47 @@ +use deno_bench_util::bench_or_profile; +use deno_bench_util::bencher::{benchmark_group, Bencher}; +use deno_bench_util::{bench_js_async, bench_js_sync}; + +use deno_core::error::AnyError; +use deno_core::op_async; +use deno_core::op_sync; +use deno_core::serialize_op_result; +use deno_core::JsRuntime; +use deno_core::Op; +use deno_core::OpState; + +use std::cell::RefCell; +use std::rc::Rc; + +fn setup(runtime: &mut JsRuntime) { + runtime.register_op("pi_json", op_sync(|_, _: (), _: ()| Ok(314159))); + runtime.register_op("pi_async", op_async(op_pi_async)); + runtime.register_op("nop", |state, _| { + Op::Sync(serialize_op_result(Ok(9), state)) + }); + runtime.sync_ops_cache(); +} + +// this is a function since async closures aren't stable +async fn op_pi_async( + _: Rc<RefCell<OpState>>, + _: (), + _: (), +) -> Result<i64, AnyError> { + Ok(314159) +} + +fn bench_op_pi_json(b: &mut Bencher) { + bench_js_sync(b, r#"Deno.core.opSync("pi_json", null);"#, setup); +} + +fn bench_op_nop(b: &mut Bencher) { + bench_js_sync(b, r#"Deno.core.opSync("nop", null, null, null);"#, setup); +} + +fn bench_op_async(b: &mut Bencher) { + bench_js_async(b, r#"Deno.core.opAsync("pi_async", null);"#, setup); +} + +benchmark_group!(benches, bench_op_pi_json, bench_op_nop, bench_op_async); +bench_or_profile!(benches); |
