Faster scripts in Julia with DaemonMode.jl

One of the main perceved


One of the disadvantages most perceived by new users, and much talked about is the initial time required for running a program in Julia, mainly due to the compilation phase, that is called well-known time-to-first-plot. While it is true that developers are well-awake of that problem, and it is being reduced in new versions of Julia, it is huge problem when it is wanted to use Julia as a language to program, small programs, scripts, specially when these scripts need to load packages (like CSV or DataFrames, very common in data science scripts).

In order to tackle that problem, I developed the DaemonMode.jl, that allows users to run all scripts sending them in a specific process to be run by it. Because the same process run all Julia scripts, the packages compiling is only done the first time any script load it, being able to run very quickly the scripts, even when these scripts are changed.

The package is available at the General Register, or https://github.com/dmolina/DaemonMode.jl, with more than 85 starts.

The aim of that talk is to show the possibilities of the packages, showing the reduction in time with different scripts. I will talk about new features of last versions: better error stack, managing logs, return error code if any problem is detected, .... Even more, because the communication between the client and the server is done through sockets, I have developed a small client in binary to avoid even the initial time for loading the interpreter. Using the binary client, even the more simple scripts are faster. Also, I will talk about future changes, mainly oriented to allow remote scripts, and to receive feedback of users.