# Slow Startup

Julia uses Just-in-Time (JIT) compilation. So why is that important? This means that instead of interpreting your code each time you run it, the Julia code instead compiles your code the first time you run it and then keeps the compiled code around.

In practice, this means that the first time you run something it takes substantially longer than subsequent times. The benefit of this approach is that all subsequent evaluations are much faster. This is, in fact, why Julia can perform at a level comparable to C even though it is an interpreted language. But, of course, the downside is the slow start up.

Normally, when you exit the julia process, all the precompiled code is thrown away. Which means when you restart the julia process, the compilation starts all over again. Package developers can include code to encourage the compiler to "precompile" specific code at installation time to avoid the subsequent and repeated compilation. Furthermore, the Julia compiler itself is making significant improvements in startup time as well.

The bottom line is that while you may notice slow start up times, you are not alone and the developers of both the Julia language and Julia packages (like ModelingToolkit.jl) are actively working to improve this situation.