The TTFP penalty is paid every time you launch a new Julia executable. Currently, the only way to save the full results of compilation (for a particular set of methods) between Julia sessions is through PackageCompiler.jl. It’s infrequently used for interactive workflows (data exploration, plotting), because you seldom know exactly which set of methods you need to compile until you’re done fiddling around. If you’re working from the Julia REPL (or an IDE), the go-to choice for avoiding TTFP overhead is Revise.jl. If you need to run your scripts from the command line, you can use DaemonMode.jl to keep a Julia server process spinning in the background.