1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 23:34:47 -05:00
denoland-deno/cli
Matt Mastracci 0b4770fa7d
perf(core) Reduce script name and script code copies (#18298)
Reduce the number of copies and allocations of script code by carrying
around ownership/reference information from creation time.

As an advantage, this allows us to maintain the identity of `&'static
str`-based scripts and use v8's external 1-byte strings (to avoid
incorrectly passing non-ASCII strings, debug `assert!`s gate all string
reference paths).

Benchmark results:

Perf improvements -- ~0.1 - 0.2ms faster, but should reduce garbage
w/external strings and reduces data copies overall. May also unlock some
more interesting optimizations in the future.

This requires adding some generics to functions, but manual
monomorphization has been applied (outer/inner function) to avoid code
bloat.
2023-03-21 22:33:12 +00:00
..
args chore(cli) Use with_context(|| format!(...)) rather than context(format!(...)) to avoid allocations in non-error path (#18332) 2023-03-21 12:13:32 -06:00
bench chore(bench): add RUNTIME_SNAPSHOT.bin (#18269) 2023-03-18 21:00:00 +01:00
cache fix(cli) Better error messages on corrupt databases that aren't automatically re-created (#18330) 2023-03-21 17:19:10 +00:00
js BREAKING(unstable): remove WebGPU (#18094) 2023-03-17 00:29:32 +01:00
lsp perf(core) Reduce script name and script code copies (#18298) 2023-03-21 22:33:12 +00:00
napi chore: forward v1.31.3 release commit to main (#18222) 2023-03-16 17:09:26 +09:00
node feat: TypeScript 5.0.2 (except decorators) (#18294) 2023-03-21 15:46:40 +00:00
npm feat: TypeScript 5.0.2 (except decorators) (#18294) 2023-03-21 15:46:40 +00:00
ops Reland "perf(core): preserve ops between snapshots (#18080)" (#18272) 2023-03-18 18:30:04 -04:00
schemas feat: embed import map in the config file (#17478) 2023-01-25 21:13:40 +01:00
tests feat: TypeScript 5.0.2 (except decorators) (#18294) 2023-03-21 15:46:40 +00:00
tools perf(core) Reduce script name and script code copies (#18298) 2023-03-21 22:33:12 +00:00
tsc perf(core) Reduce script name and script code copies (#18298) 2023-03-21 22:33:12 +00:00
util perf(core) Reduce script name and script code copies (#18298) 2023-03-21 22:33:12 +00:00
auth_tokens.rs chore: upgrade to Rust 1.67 (#17548) 2023-01-27 10:43:16 -05:00
build.rs Revert "perf: disable TSC snapshot compression (#18333)" (#18336) 2023-03-21 19:11:22 +00:00
Cargo.toml Revert "perf: disable TSC snapshot compression (#18333)" (#18336) 2023-03-21 19:11:22 +00:00
deno.ico fix(cli): add icon and metadata to deno.exe on Windows (#6693) 2020-07-15 21:54:38 +02:00
deno_std.rs chore: forward v1.31.3 release commit to main (#18222) 2023-03-16 17:09:26 +09:00
emit.rs perf(core) Reduce script name and script code copies (#18298) 2023-03-21 22:33:12 +00:00
errors.rs feat: TypeScript 5.0.2 (except decorators) (#18294) 2023-03-21 15:46:40 +00:00
file_fetcher.rs feat: TypeScript 5.0.2 (except decorators) (#18294) 2023-03-21 15:46:40 +00:00
graph_util.rs feat: TypeScript 5.0.2 (except decorators) (#18294) 2023-03-21 15:46:40 +00:00
http_util.rs refactor: remove usages of map_or / map_or_else (#18212) 2023-03-15 17:46:36 -04:00
js.rs perf: disable runtime snapshot compression (#18239) 2023-03-17 08:49:46 +05:30
main.rs refactor: use deno_graph's semver and npm structs (#17791) 2023-02-15 13:20:40 -05:00
module_loader.rs perf(core) Reduce script name and script code copies (#18298) 2023-03-21 22:33:12 +00:00
proc_state.rs fix(cli): preserve blob store when resetting file watcher (#18253) 2023-03-17 19:58:25 -06:00
README.md docs(cli): do not need gen doc for cli (#17260) 2023-01-04 13:19:58 +01:00
resolver.rs refactor: remove Semaphore::new(1) and use TaskQueue (#18014) 2023-03-04 20:07:11 -05:00
standalone.rs perf(core) Reduce script name and script code copies (#18298) 2023-03-21 22:33:12 +00:00
version.rs refactor: remove usages of map_or / map_or_else (#18212) 2023-03-15 17:46:36 -04:00
worker.rs perf(core) Reduce script name and script code copies (#18298) 2023-03-21 22:33:12 +00:00

Deno CLI Crate

crates

This provides the actual deno executable and the user-facing APIs.

The deno crate uses the deno_core to provide the executable.