[erlang-questions] Why is erlc so quick to start?
Mon Jan 5 10:14:12 CET 2015
Maybe you can compare "erlc myfile" with "erl -s compile file myfile"? Or
start some other code that does something relevant, with and without the
I believe that a big part of the savings is due to the differences in code
loading, which "init:stop" or "erlang:halt" might not trigger.
On Mon, Jan 5, 2015 at 10:08 AM, Roger Lipscombe <roger@REDACTED>
> Loïc has mentioned that any Erlang package manager must be as quick to
> start as 'erlc'. So, I figured that I'd take a quick look at how
> 'erlc' is started.
> The code's in erts/etc/common/erlc.c, and it appears to do this:
> erlc +sbtu +A0 -noinput -mode minimal -boot start_clean -s
> erl_compile compile_cmdline
> For comparison, "erl -noinput -s init stop" takes, according to
> /usr/bin/time, on average, 1.15 secs elapsed to exit, versus "erlc
> +sbtu +A0 -noinput -mode minimal -boot start_clean -s init stop",
> which takes 1.10 secs. This is with a Core i7-3930K @ 3.20GHz, running
> from an SSD.
> That's not much of a saving, but I guess it could make enough difference.
> For another data point, I used "-s erlang halt" instead of "-s init
> stop", and saw much bigger savings. The average time here was 0.10
> secs. From a brief look, I don't know which of these is more relevant.
> It's difficult to get a direct comparison with running the "erlc"
> binary, because it doesn't spawn the VM if there's nothing to compile,
> and if there is something to compile, it compiles it. So I wouldn't be
> comparing like with like.
> erlang-questions mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions