You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After experimenting with #49235, I started to question if we are getting
any actual benefit from the `throw` block deoptimization anymore.
This commit removes the deoptimization from the system entirely.
Based on the numbers below, it appears that the deoptimization is not
very profitable in our current Julia-level compilation pipeline,
with the effects analysis playing a significant role in reducing latency.
Here are the updated benchmark:
| Metric | master | #49235 | this commit |
|-------------------------|-----------|-------------|--------------------------------------------|
| Base (seconds) | 15.579300 | 15.206645 | 15.42059 |
| Stdlibs (seconds) | 17.919013 | 17.667094 | 17.404586 |
| Total (seconds) | 33.499279 | 32.874737 | 32.826162 |
| Precompilation (seconds) | 53.488528 | 53.152028 | 53.152028 |
| First time `plot(rand(10,3))` [^1] | `3.432983 seconds (16.55 M allocations)` | `3.477767 seconds (16.45 M allocations)` | `3.539117 seconds (16.43 M allocations)` |
| First time `solve(prob, QNDF())(5.0)` [^2] | `4.628278 seconds (15.74 M allocations)` | `4.609222 seconds (15.32 M allocations)` | `4.547323 seconds (15.19 M allocations: 823.510 MiB)` |
[^1]: With disabling precompilation of Plots.jl.
[^2]: With disabling precompilation of OrdinaryDiffEq.
0 commit comments