1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-28 16:20:57 -05:00
denoland-deno/cli/tools
Nayeem Rahman 19ab929e1c
fix(bench): explicit timers don't force high precision measurements (#20272)
Disables `BenchContext::start()` and `BenchContext::end()` for low
precision benchmarks (less than 0.01s per iteration). Prints a warning
when they are used in such benchmarks, suggesting to remove them.

```ts
Deno.bench("noop", { group: "noops" }, () => {});

Deno.bench("noop with start/end", { group: "noops" }, (b) => {
  b.start();
  b.end();
});
```

Before:
```
cpu: 12th Gen Intel(R) Core(TM) i9-12900K
runtime: deno 1.36.2 (x86_64-unknown-linux-gnu)

file:///home/nayeem/projects/deno/temp3.ts
benchmark                    time (avg)        iter/s             (min … max)       p75       p99      p995
----------------------------------------------------------------------------- -----------------------------


noop                          2.63 ns/iter 380,674,131.4    (2.45 ns … 27.78 ns)   2.55 ns   4.03 ns   5.33 ns
noop with start and end     302.47 ns/iter   3,306,146.0     (200 ns … 151.2 µs)    300 ns    400 ns    400 ns

summary
  noop
   115.14x faster than noop with start and end
```

After:
```
cpu: 12th Gen Intel(R) Core(TM) i9-12900K
runtime: deno 1.36.1 (x86_64-unknown-linux-gnu)

file:///home/nayeem/projects/deno/temp3.ts
benchmark                    time (avg)        iter/s             (min … max)       p75       p99      p995
----------------------------------------------------------------------------- -----------------------------


noop                          3.01 ns/iter 332,565,561.7    (2.73 ns … 29.54 ns)   2.93 ns   5.29 ns   7.45 ns
noop with start and end       7.73 ns/iter 129,291,091.5    (6.61 ns … 46.76 ns)   7.87 ns  13.12 ns  15.32 ns
Warning start() and end() calls in "noop with start and end" are ignored because it averages less than 0.01s per iteration. Remove them for better results.

summary
  noop
   2.57x faster than noop with start and end
```
2023-08-31 14:02:40 +02:00
..
bench fix(bench): explicit timers don't force high precision measurements (#20272) 2023-08-31 14:02:40 +02:00
coverage feat(unstable): rename deno_modules to vendor (#20065) 2023-08-06 21:56:56 -04:00
init fix(cli/init): update to assert/mod.ts (#19924) 2023-07-24 19:57:01 +00:00
repl fix(ext/web): add stream tests to detect v8slice split bug (#20253) 2023-08-24 09:01:07 -06:00
test fix(ext/web): add stream tests to detect v8slice split bug (#20253) 2023-08-24 09:01:07 -06:00
vendor fix(unstable): disable importing from the vendor directory (#20067) 2023-08-21 18:23:27 +05:30
bundle.rs refactor: use "deno_config" crate (#20260) 2023-08-24 09:01:53 -06:00
check.rs refactor: upgrade deno_ast 0.28 and deno_semver 0.4 (#20193) 2023-08-21 18:23:28 +05:30
compile.rs feat(compile): Add --no-terminal to compile command (#17991) 2023-07-28 18:46:26 +03:00
doc.rs Reland "fix(cli): don't store blob and data urls in the module cache" (#18581) 2023-07-02 00:52:30 +02:00
fmt.rs fix(ext/web): add stream tests to detect v8slice split bug (#20253) 2023-08-24 09:01:07 -06:00
info.rs refactor: upgrade deno_ast 0.28 and deno_semver 0.4 (#20193) 2023-08-21 18:23:28 +05:30
installer.rs refactor: use "deno_config" crate (#20260) 2023-08-24 09:01:53 -06:00
lint.rs feat(unstable): rename deno_modules to vendor (#20065) 2023-08-06 21:56:56 -04:00
mod.rs feat(compile): unstable npm and node specifier support (#19005) 2023-05-10 20:06:59 -04:00
run.rs Reland "fix(cli): don't store blob and data urls in the module cache" (#18581) 2023-07-02 00:52:30 +02:00
task.rs refactor: upgrade deno_ast 0.28 and deno_semver 0.4 (#20193) 2023-08-21 18:23:28 +05:30
upgrade.rs chore(cli): remove atty crate (#20275) 2023-08-31 14:02:39 +02:00