I try to improve the deployment of the new releases of my Julia web apps.
As of now, the users encounter some lags (and sometimes timeouts) every time I deploy a new version because of the JIT compilation.
This gets even worse as I am adding more process with addprocs()
because every function needs to be compiled on every core.
The first idea is to write a script that would provoke the compilation of every function of the project. In this idea running all the unit tests on every core would work.
But this has the problem that it requires the unit testing coverage of my project to be perfect (which is not the case ) and to modify all the functions that alter data to have some sort of “simulation” mode…
Another option would be to simulate navigation on the web app, but same problem as before, plus I can’t be sure that every function has been invoked on every core.
I would be glad to hear that there’s something to provoke AOT compilation of a project.
NOTE: I don’t want to create an executable with PackageCompiler.jl