mirror of
https://github.com/vercel/next.js.git
synced 2026-09-20 02:25:18 +08:00
b3959cdcbf
PR created with claude code, with some manual review. - Update benchmark scripts to work, given my recent code changes - Include a native nodejs benchmark - Use rimraf's `manual` implementation (tries to use node's native version) - Tried to clean up the code a bit - Use a trap to always clean up - Use getopt and add an `--iterations` option - `set -euo pipefail` to avoid swallowing errors Example output: ``` pnpm bench > bench-recursive-delete@ bench /home/bgw.linux/next.js/bench/recursive-delete > bash run.sh ----------- rimraf (async) 1 62.443657 rimraf (async) 2 52.953482 rimraf (async) 3 52.029235 rimraf (async) 4 50.709822 rimraf (async) 5 54.204893 ----------- rimraf (sync) 1 35.034669 rimraf (sync) 2 35.663417 rimraf (sync) 3 46.360754 rimraf (sync) 4 36.859329 rimraf (sync) 5 34.368796 ----------- recursive delete 1 37.851534 recursive delete 2 35.98904 recursive delete 3 36.620913 recursive delete 4 38.059992 recursive delete 5 43.880346 ----------- nodejs rm (promises) 1 71.301125 nodejs rm (promises) 2 89.78331 nodejs rm (promises) 3 68.073553 nodejs rm (promises) 4 70.787543 nodejs rm (promises) 5 73.727616 ----------- nodejs rm (callback) 1 92.698258 nodejs rm (callback) 2 73.043993 nodejs rm (callback) 3 70.869584 nodejs rm (callback) 4 69.196757 nodejs rm (callback) 5 75.715526 ----------- nodejs rm (sync) 1 41.71002 nodejs rm (sync) 2 41.742395 nodejs rm (sync) 3 38.894571 nodejs rm (sync) 4 41.326271 nodejs rm (sync) 5 48.152122 ```
16 lines
403 B
JavaScript
16 lines
403 B
JavaScript
import { recursiveDeleteSyncWithAsyncRetries } from 'next/dist/lib/recursive-delete.js'
|
|
|
|
const targetDir = process.argv[2]
|
|
|
|
async function test() {
|
|
const time = process.hrtime()
|
|
await recursiveDeleteSyncWithAsyncRetries(targetDir)
|
|
|
|
const hrtime = process.hrtime(time)
|
|
const nanoseconds = hrtime[0] * 1e9 + hrtime[1]
|
|
const milliseconds = nanoseconds / 1e6
|
|
console.log(milliseconds)
|
|
}
|
|
|
|
test()
|