summaryrefslogtreecommitdiff
path: root/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'extensions')
-rw-r--r--extensions/url/Cargo.toml2
-rw-r--r--extensions/url/benches/url_ops.rs37
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);