deno/cli/npm
Nathan Whitaker 3e8f29ae41
perf(cli): Optimize setting up node_modules on macOS (#23980)
Hard linking (`linkat`) is ridiculously slow on mac. `copyfile` is
better, but what's even faster is `clonefile`. It doesn't have the space
savings that comes with hardlinking, but the performance difference is
worth it imo.

```
❯ hyperfine -i -p 'rm -rf node_modules/' '../../d7/target/release/deno cache npm:@11ty/eleventy' 'deno cache npm:@11ty/eleventy'
Benchmark 1: ../../d7/target/release/deno cache npm:@11ty/eleventy
  Time (mean ± σ):     115.4 ms ±   1.2 ms    [User: 27.2 ms, System: 87.3 ms]
  Range (min … max):   113.7 ms … 117.5 ms    10 runs

Benchmark 2: deno cache npm:@11ty/eleventy
  Time (mean ± σ):     619.3 ms ±   6.4 ms    [User: 34.3 ms, System: 575.6 ms]
  Range (min … max):   612.2 ms … 633.3 ms    10 runs

Summary
  ../../d7/target/release/deno cache npm:@11ty/eleventy ran
    5.37 ± 0.08 times faster than deno cache npm:@11ty/eleventy
```
2024-05-28 11:59:17 -07:00
..
managed perf(cli): Optimize setting up node_modules on macOS (#23980) 2024-05-28 11:59:17 -07:00
byonm.rs perf: v8 code cache (#23081) 2024-04-17 07:19:55 -07:00
cache_dir.rs FUTURE: initial support for .npmrc file (#23560) 2024-05-23 23:26:23 +02:00
common.rs FUTURE: initial support for .npmrc file (#23560) 2024-05-23 23:26:23 +02:00
mod.rs refactor: move redirect handling into deno_graph (#23444) 2024-04-19 01:43:28 +00:00