If you have trouble with the above workload script (on macOS), you probably have to comment out the StatsPlots test in the end. See note from @ianfiske …
Lots of things. We noticed the Plots.jl time actually goes to around 5 seconds with -O0, so we were underestimating the LLVM time and that means there’s more to do there. It’s somewhat hard to benchmark because the issues now that precompile files have been enhanced are mostly about method invalidation: someone defines a lower dispatch that “infects” that suddenly causes a lot less precompile to be reused. A big issue in CSV.jl was noted to be due to that, and that’s really where all of the profiling seems to lead. Some of that could be fixed by moving some more of these basic dispatches to Base.
For the record, @jzr mentioned a while back in another post the SandDance extension for VSCode. If Julia code writes the data to be plotted to disk as a CSV file, a right click to view it in SandDance is instantaneous. Yes, the number of plot types is limited, but powerful for some applications.
using DelimitedFiles
x = 0:0.1:2π
y = sin.(x)
open("delim_file_4_sanddance.csv", "w") do io
writedlm(io, ["X" "Y"], ',')
writedlm(io, [x y], ',')
end
@davidanthoff, SandDance.jl works pretty well (Win10, Julia 1.7). The time to first plot seems to be < 2 s for small datasets and about 4-5 s for ~10K points. Thank you.
# pkg> add https://github.com/queryverse/SandDance.jl
using SandDance, DataFrames
f(x,y) = exp(-x^2*y^2)*sin(x*y)
n = 100
x = y = LinRange(-π, π, n)
xx = x' .* ones(n)
yy = ones(n)' .* y
zz = f.(xx,yy)
data2d = DataFrame(x=xx[:], y=yy[:], z=zz[:])
SandDanceWindow(data2d)