Closed timholy closed 1 year ago
Here's the raw data (on what is effectively Julia nightly):
master
:
julia> @time using NMF
0.175066 seconds (279.97 k allocations: 20.235 MiB, 4.21% compilation time)
julia> X = rand(8, 6);
julia> @time @eval nnmf(X, 4);
6.783210 seconds (14.65 M allocations: 929.582 MiB, 6.85% gc time, 99.98% compilation time)
This PR:
julia> @time using NMF
0.468556 seconds (879.66 k allocations: 62.893 MiB, 10.06% gc time, 1.62% compilation time)
julia> X = rand(8, 6);
julia> @time @eval nnmf(X, 4);
0.010354 seconds (952 allocations: 115.509 KiB, 65.50% compilation time)
So there's a small increase in load time, in exchange for a massive decrease in TTFX.
Base: 89.70% // Head: 92.27% // Increases project coverage by +2.56%
:tada:
Coverage data is based on head (
aa889ce
) compared to base (8629a5d
). Patch has no changes to coverable lines.
:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.
Especially on (the upcoming) Julia 1.9, this greatly reduces TTFX, from >5s to ~10ms on my machine.
Because SnoopPrecompile does not support Julia 0.7, this PR requires that we abandon support for very old Julia versions, and that in turn requires a minor version bump (policy of the General registry). Since this package isn't changing quickly, I recommend taking the leap to 1.0.
See #69 for the test failure. After merging that PR, you can close and reopen this to re-run the tests.