diff options
author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2021-03-31 16:37:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-31 10:37:38 -0400 |
commit | fec1b2a5a4324a7eecdfbb2471931f3b6b0139c5 (patch) | |
tree | 8a650553c2d70e047d9d7365f9ac8702ec9861a5 /core/benches/op_baseline.rs | |
parent | 6dc3549a818ad49b3907d18c93fd422a9cc743a5 (diff) |
refactor: new optimized op-layer using serde_v8 (#9843)
- Improves op performance.
- Handle op-metadata (errors, promise IDs) explicitly in the op-layer vs
per op-encoding (aka: out-of-payload).
- Remove shared queue & custom "asyncHandlers", all async values are
returned in batches via js_recv_cb.
- The op-layer should be thought of as simple function calls with little
indirection or translation besides the conceptually straightforward
serde_v8 bijections.
- Preserve concepts of json/bin/min as semantic groups of their
inputs/outputs instead of their op-encoding strategy, preserving these
groups will also facilitate partial transitions over to v8 Fast API for the
"min" and "bin" groups
Diffstat (limited to 'core/benches/op_baseline.rs')
-rw-r--r-- | core/benches/op_baseline.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/core/benches/op_baseline.rs b/core/benches/op_baseline.rs index ed10c2d16..9c288fe27 100644 --- a/core/benches/op_baseline.rs +++ b/core/benches/op_baseline.rs @@ -5,12 +5,14 @@ use deno_core::json_op_sync; use deno_core::v8; use deno_core::JsRuntime; use deno_core::Op; +use deno_core::OpResponse; fn create_js_runtime() -> JsRuntime { let mut runtime = JsRuntime::new(Default::default()); runtime.register_op("pi_bin", bin_op_sync(|_, _, _| Ok(314159))); runtime.register_op("pi_json", json_op_sync(|_, _: (), _| Ok(314159))); - runtime.register_op("nop", |_, _| Op::Sync(Box::new(9_u64.to_le_bytes()))); + runtime + .register_op("nop", |_, _, _| Op::Sync(OpResponse::Value(Box::new(9)))); // Init ops runtime @@ -43,7 +45,7 @@ fn bench_op_pi_bin(b: &mut Bencher) { bench_runtime_js( b, r#"for(let i=0; i < 1e3; i++) { - Deno.core.binOpSync("pi_bin", 0); + Deno.core.binOpSync("pi_bin", 0, nopView); }"#, ); } @@ -61,7 +63,7 @@ fn bench_op_nop(b: &mut Bencher) { bench_runtime_js( b, r#"for(let i=0; i < 1e3; i++) { - Deno.core.dispatchByName("nop", nopView); + Deno.core.dispatchByName("nop", null, null, nopView); }"#, ); } |