diff options
Diffstat (limited to 'extensions/url/benches/url_ops.rs')
-rw-r--r-- | extensions/url/benches/url_ops.rs | 37 |
1 files changed, 15 insertions, 22 deletions
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); |