Nathan Whitaker
c22d17824b
perf(fs): don't canonicalize path when opening file if --allow-all
is passed ( #28716 )
...
Fixes #28702 .
Super artificial benchmark:
```ts
const perf = performance;
async function asyncOpen() {
const start = perf.now();
for (let i = 0; i < 100_000; i++) {
const file = await Deno.open("./foo.txt");
file.close();
}
const end = perf.now();
console.log(end - start);
}
function syncOpen() {
const start = perf.now();
for (let i = 0; i < 100_000; i++) {
const file = Deno.openSync("./foo.txt");
file.close();
}
const end = perf.now();
console.log(end - start);
}
if (Deno.args[0]?.trim() === "async") {
await asyncOpen();
} else {
syncOpen();
}
```
Results (average of 10 for each):
```
deno sync 1785.59
deno-this-pr sync 491.69
deno async 1839.71
deno-this-pr async 528.78
```
---------
Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
2025-04-29 23:16:24 +00:00
David Sherret
57dd66ec3d
refactor: move denort to separate crate ( #27688 )
...
This slightly degrades the performance of CJS export analysis on
subsequent runs because I changed it to no longer cache in the DENO_DIR
with this PR (denort now properly has no idea about the DENO_DIR). We'll
have to change it to embed this data in the binary and that will also
allow us to get rid of swc in denort (will do that in a follow-up PR).
2025-01-17 20:39:29 +00:00
David Sherret
05dc69932d
refactor: create deno_lib crate ( #27673 )
...
Shifts just some code down for now. I'll do the rest of the refactor in
the next pr, but didn't want to drop a huge refactor.
2025-01-15 09:35:46 -05:00