-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bug(perf): Severe performance regression in Deno 1.32.2 repl start time #18615
Labels
duplicate
a duplicate of another issue
Comments
Looks like this regression is only in 1.32.2 and has been fixed in 1.32.3 ❯ sh -c "hyperfine --warmup=2 $(for deno in ~/.tea/deno.land/v1.32.* ; do printf "\"$deno/bin/deno repl --eval 'close()'\" ";done)"
Benchmark 1: /Users/m0c0j7y/.tea/deno.land/v1.32.0/bin/deno repl --eval 'close()'
Time (mean ± σ): 195.8 ms ± 16.3 ms [User: 133.5 ms, System: 47.5 ms]
Range (min … max): 184.0 ms … 230.8 ms 14 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Benchmark 2: /Users/m0c0j7y/.tea/deno.land/v1.32.1/bin/deno repl --eval 'close()'
Time (mean ± σ): 181.9 ms ± 9.2 ms [User: 126.3 ms, System: 42.3 ms]
Range (min … max): 152.3 ms … 191.0 ms 15 runs
Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.
Benchmark 3: /Users/m0c0j7y/.tea/deno.land/v1.32.2/bin/deno repl --eval 'close()'
Time (mean ± σ): 1.226 s ± 0.046 s [User: 0.532 s, System: 0.232 s]
Range (min … max): 1.180 s … 1.331 s 10 runs
Benchmark 4: /Users/m0c0j7y/.tea/deno.land/v1.32.3/bin/deno repl --eval 'close()'
Time (mean ± σ): 200.7 ms ± 37.6 ms [User: 139.7 ms, System: 45.3 ms]
Range (min … max): 146.1 ms … 298.6 ms 16 runs
Summary
'/Users/m0c0j7y/.tea/deno.land/v1.32.1/bin/deno repl --eval 'close()'' ran
1.08 ± 0.10 times faster than '/Users/m0c0j7y/.tea/deno.land/v1.32.0/bin/deno repl --eval 'close()''
1.10 ± 0.21 times faster than '/Users/m0c0j7y/.tea/deno.land/v1.32.3/bin/deno repl --eval 'close()''
6.74 ± 0.42 times faster than '/Users/m0c0j7y/.tea/deno.land/v1.32.2/bin/deno repl --eval 'close()''
❯ cd /tmp
/tmp ································································································································ 13:04:01 ─╮
❯ sh -c "hyperfine --warmup=2 $(for deno in ~/.tea/deno.land/v1.32.* ; do printf "\"$deno/bin/deno repl --eval 'close()'\" ";done)" ─╯
Benchmark 1: /Users/m0c0j7y/.tea/deno.land/v1.32.0/bin/deno repl --eval 'close()'
Time (mean ± σ): 214.7 ms ± 27.6 ms [User: 147.0 ms, System: 53.4 ms]
Range (min … max): 167.4 ms … 266.2 ms 16 runs
Benchmark 2: /Users/m0c0j7y/.tea/deno.land/v1.32.1/bin/deno repl --eval 'close()'
Time (mean ± σ): 198.4 ms ± 20.4 ms [User: 138.5 ms, System: 48.0 ms]
Range (min … max): 178.3 ms … 239.8 ms 13 runs
Benchmark 3: /Users/m0c0j7y/.tea/deno.land/v1.32.2/bin/deno repl --eval 'close()'
Time (mean ± σ): 216.1 ms ± 39.8 ms [User: 142.3 ms, System: 53.0 ms]
Range (min … max): 176.0 ms … 292.9 ms 15 runs
Benchmark 4: /Users/m0c0j7y/.tea/deno.land/v1.32.3/bin/deno repl --eval 'close()'
Time (mean ± σ): 191.5 ms ± 31.1 ms [User: 137.1 ms, System: 43.8 ms]
Range (min … max): 145.1 ms … 280.3 ms 16 runs
Summary
'/Users/m0c0j7y/.tea/deno.land/v1.32.3/bin/deno repl --eval 'close()'' ran
1.04 ± 0.20 times faster than '/Users/m0c0j7y/.tea/deno.land/v1.32.1/bin/deno repl --eval 'close()''
1.12 ± 0.23 times faster than '/Users/m0c0j7y/.tea/deno.land/v1.32.0/bin/deno repl --eval 'close()''
1.13 ± 0.28 times faster than '/Users/m0c0j7y/.tea/deno.land/v1.32.2/bin/deno repl --eval 'close()'' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In a recent version of Deno, the time taken to start the repl has increased tremendously in project with a large node_modules directory.
Running the same thing in a directory with no node_modules directory is actually a bit faster than previous releases (data very noisy)
FYI I don't even use Deno for its node compatibility. I just prefer to use Deno as my default JS REPL, but when I use it in a directory with node_modules it's very 🐢
The text was updated successfully, but these errors were encountered: