deno/tools
2021-10-12 15:48:08 +02:00
..
bench tools(bench): rebootstrap (#12281) 2021-10-01 00:42:24 +02:00
release 1.14.1 2021-09-22 08:44:46 +10:00
wpt feat(ext/crypto): support importing/exporting raw AES keys (#12392) 2021-10-12 15:48:08 +02:00
build_benchmark_jsons.js test(lsp): add benchmarking tests (#9586) 2021-02-25 16:14:17 +11:00
cut_a_release.md docs(tools): updates to cutting a release (#12177) 2021-09-23 09:12:56 +10:00
flamebench.js flamebench: streamline profiling benches (#10121) 2021-04-26 16:41:53 +02:00
format.js chore: upgrade dprint 0.13.1 to fix CI. (#10513) 2021-05-06 13:22:24 +09:00
lint.js chore: upgrade dlint and run prefer-primordials rule (#11777) 2021-08-20 01:14:20 +02:00
README.md flamebench: streamline profiling benches (#10121) 2021-04-26 16:41:53 +02:00
upload_wptfyi.js build: switch to wpt.fyi prod (#11201) 2021-07-01 15:44:44 +02:00
util.js chore: use local deno_std in tools scripts (#11122) 2021-06-26 02:02:31 +02:00
wpt.ts chore(wpt): Enable WPT worker tests (#12222) 2021-10-08 17:44:38 +02:00

Tools

Documentation for various tooling in support of Deno development.

format.js

This script will format the code (currently using dprint, rustfmt). It is a prerequisite to run this before code check in.

To run formatting:

deno run --allow-read --allow-write --allow-run --unstable ./tools/format.js

lint.js

This script will lint the code base (currently using dlint, clippy). It is a prerequisite to run this before code check in.

To run linting:

deno run --allow-read --allow-write --allow-run --unstable ./tools/lint.js

Tip: You can also use cargo to run the current or pending build of the deno executable

cargo run -- run --allow-read --allow-write --allow-run --unstable ./tools/<script>

flamebench.js

flamebench.js facilitates profiling and generating flamegraphs from benchmarks.

General usage:

 ./tools/flamebench.js
flamebench <bench_name> [bench_filter]

Available benches:
op_baseline
ser
de

To profile the op_baseline bench, run ./tools/flamebench.js op_baseline, this will run all 3 benches in `op_baseline.

Often when profiling/optimizing, you'll want to focus on a specific sub-bench, flamebench supports a bench/test filter arg like the regular cargo commands. So you can simply run ./tools/flamebench.js op_baseline bench_op_async or ./tools/flamebench.js op_baseline bench_op_nop to profile specific benches.

Tip: the [bench_filter] argument doesn't have to be an exact bench name, you can use a shorthand or a partial match to profile a group of benches, e.g: ./tools/flamebench.js de v8