はじめに
Erlangをビルドする際に「すごい時間がかかる・・・」と思ったことはありませんか?
Erlangにはビルドを高速にするためのいくつかのオプションがあるのでそれについて紹介します。
並列化による高速化
Erlangをビルドする際の、configureとmakeの実行は、環境変数MAKEFLAGS
を指定する事で並列化する事ができます。
例えば、4コア(もしくはハイパースレッドによる4並列)のマシンの場合、
MAKEFLAGS=-j4
とする事でconfigureとmakeを並列実行する事ができ、ビルドを高速化できます。
コンパイルサーバーによる高速化
標準ライブラリやOTPはErlangのプログラムで実装されているので、当然Erlangのビルドの際にはErlangのコンパイルが実行されます。ErlangのコンパイラはErlangで実装されているので、コンパイルが実行されるたびに、Erlangのシステムが起動されます。この時、コンパイルサーバーを利用する事で、コンパイル対象のファイルごとにErlangシステムを起動する事が不要になるのでErlangプログラムのコンパイルが高速化されます。
コンパイルサーバーを有効にするには環境変数ERLC_USE_SERVER
をtrueにしてください。
ERLC_USE_SERVER=true
まとめ
Erlangのビルドを高速化するTIPSを紹介しました。
asdf等で複数のバージョンのErlangを扱う場合には入れておく事で、ビルドが時短されるかもしれません。