Provides a hassle-free way of generating a snappy first use experience with Julia , without going into technicalities, I wrote this package to help co-workers who uses Julia for their everyday reaserch
Make Julia fast again
using Pkg pkg"add https://github.com/TsurHerman/Fezzik"
one time setup
using Fezzik Fezzik.auto_trace()
enables automatic tracing of compiler activity through adding itself
to the startup.jl file.
After this phase you’ll need to re-launch julia , work a little bit to let Fezzik trace your routine and then:
builds a new julia system image with all the traced statements baked into the system image resulting in a much smoother experience with julia for the small price of slightly increased loading time, If you are working with Juno’s cycler mode then this price is nicely hidden from you.
using Fezzik blacklist("Mypkg1","Mypkg2")
A persistant blacklist that prevents Fezzik from precompiling statements from your currently in-development modules, as baking them into the sysimg prevents you from seeing changes you make to the code
using Fezzik blacklist()
call blacklist with no arguments to see all blacklisted modules
using Fezzik whitelist("Mypkg1","Mypkg2")
make white what was once black
remove itself from the startup.jl and deletes previous traces
trace logs can be found by running the following command
abspath(dirname(pathof(Fezzik)),"../","traces") |> edit
to enable PyPlot showing properly after it was baked into the sytem image
to your startup.jl
every now and then you’ll want to start over , just call
to go back to the beginning