EDIT:
I have now updated that notebook to use a slightly different plot() syntax that seems to avoid the 1.2.0 performance penalty. Basically, avoiding title!() etc.
But none of the slowdowns look like 2x you get (no I didn’t try your example).
Since compile time is a significant amount of Travis timing, it’s disappointing that the claimed improvement on this aspect in 1.2 is not apparent, but the slowdown is reasonable. Anyways, I guess its Julia 1.4 FTW!
I don’t think there was much work on compiler latency for 1.2 since the people that usually work on that was working on multi threading for most of the release.
I’ve tried to narrow down the problem with the slow plots (from Plots.jl) in 1.2.0. After some trial and error I noticed that this works equally fast in 1.1.1 and 1.2.0 (Win 10):
using Plots
gr()
x = -3:0.01:3
plot(x,cos.(x))
plot!(x,sin.(x))
almost doubles the time in 1.2.0 (but certainly not in 1.1.1). Using pyplot() instead of gr() gives the same general result. I’ll file an issue at Plots.jl.
EDIT:
it seems as if using the syntax
plot(x,cos.(x),
title = "plot 1",
xlabel="x",
ylabel= "function values")
plot!(x,sin.(x))
avoids the 1.2.0 performance penalty. That is, avoid title!, xlabel! and ylabel!
I filed this to Plots.jl. (And no, I do not know the underlying reason for this.)
I’m a fan of your packages. One thing I don’t understand though is that BandedMatrices is quite slow to load( using BandedMatrices takes 6s on my computer). Do you understand why? Is this because of some sort of design pattern that is hard on Julia right now?