summaryrefslogtreecommitdiff
path: root/core/benches/op_baseline.rs
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@gmail.com>2021-03-31 16:37:38 +0200
committerGitHub <noreply@github.com>2021-03-31 10:37:38 -0400
commitfec1b2a5a4324a7eecdfbb2471931f3b6b0139c5 (patch)
tree8a650553c2d70e047d9d7365f9ac8702ec9861a5 /core/benches/op_baseline.rs
parent6dc3549a818ad49b3907d18c93fd422a9cc743a5 (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.rs8
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);
}"#,
);
}