diff options
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/url/Cargo.toml | 2 | ||||
-rw-r--r-- | extensions/url/benches/url_ops.rs | 37 |
2 files changed, 16 insertions, 23 deletions
diff --git a/extensions/url/Cargo.toml b/extensions/url/Cargo.toml index 70a880e0d..19d8a113d 100644 --- a/extensions/url/Cargo.toml +++ b/extensions/url/Cargo.toml @@ -20,7 +20,7 @@ percent-encoding = "2.1.0" serde = { version = "1.0.125", features = ["derive"] } [dev-dependencies] -bencher = "0.1" +deno_bench_util = { version = "0.1.0", path = "../../bench_util" } [[bench]] name = "url_ops" diff --git a/extensions/url/benches/url_ops.rs b/extensions/url/benches/url_ops.rs index 8b3cf2705..b901939e0 100644 --- a/extensions/url/benches/url_ops.rs +++ b/extensions/url/benches/url_ops.rs @@ -1,35 +1,28 @@ -use bencher::{benchmark_group, benchmark_main, Bencher}; +use deno_bench_util::bench_js_sync; +use deno_bench_util::bench_or_profile; +use deno_bench_util::bencher::{benchmark_group, Bencher}; -use deno_core::v8; use deno_core::JsRuntime; -use deno_core::RuntimeOptions; -fn create_js_runtime() -> JsRuntime { - let mut runtime = JsRuntime::new(RuntimeOptions { - extensions: vec![deno_url::init()], - ..Default::default() - }); +fn setup(runtime: &mut JsRuntime) { + // TODO(@AaronO): support caller provided extensions in deno_bench_util + let mut ext = deno_url::init(); + + for (name, op_fn) in ext.init_ops().unwrap() { + runtime.register_op(name, op_fn); + } + for (filename, src) in ext.init_js() { + runtime.execute(filename, src).unwrap(); + } runtime .execute("setup", "const { URL } = globalThis.__bootstrap.url;") .unwrap(); - - runtime -} - -pub fn bench_runtime_js(b: &mut Bencher, src: &str) { - let mut runtime = create_js_runtime(); - let scope = &mut runtime.handle_scope(); - let code = v8::String::new(scope, src).unwrap(); - let script = v8::Script::compile(scope, code, None).unwrap(); - b.iter(|| { - script.run(scope).unwrap(); - }); } fn bench_url_parse(b: &mut Bencher) { - bench_runtime_js(b, r#"new URL(`http://www.google.com/`);"#); + bench_js_sync(b, r#"new URL(`http://www.google.com/`);"#, setup); } benchmark_group!(benches, bench_url_parse,); -benchmark_main!(benches); +bench_or_profile!(benches); |