Elixir v1.15 がリリースされました。主にコンパイル時間と起動時間を改善するマイナー バージョン アップデートです。Erlang/OTP ロガーとの統合も完了し、ログのローテーションや圧縮などの新機能がそのまま使えるようになりました。
- コンパイル時間と起動時間を改善する
Elixir は、コンパイル前にロード パスをキャッシュおよびプルーニングすることで、実稼働に近い環境でプロジェクト (および依存関係) をより速くコンパイルできるようになりました。
つまり、Erlang VM はコード パスからモジュールをロードするためです。Erlang および Elixir に付属するすべてのアプリケーションとすべての依存関係は、コード パスのエントリになります。したがって、コードパスが大きくなるほど、Erlang がモジュールを見つけるために行う必要がある作業が増えます。
以前のバージョンでは、Mix はロード パスにエントリを追加するだけでした。したがって、20 個の依存関係をコンパイルし、次に 21 番目の依存関係をコンパイルすると、コード パスには 21 個のエントリ (およびすべての Erlang および Elixir アプリケーション) が含まれることになります。これにより、無関係な依存関係からのモジュールが許可されるため、依存関係が増えるとコンパイルが遅くなります。
新しいバージョンでは、コード パスが依存関係としてリストされているもののみにトリミングされるようになり、動作がより近くなりました mix release
。
効果は次のとおりです。
- 統合された Erlang/OTP ロガー
このリリースでは、グローバル ロガー メタデータやすぐに使用できるファイル ログなどの追加機能が提供されます。
新しいリリースでは、Erixir の Logger バックエンドもソフト的に非推奨となり、Erlang の Logger ハンドラーが優先されます。Elixir は、 :console
バックエンド構成を新しい構成に自動的に変換します。以前の構成は次のとおりです。
config :logger, :console,
level: :error,
format: "$time $message $metadata"
今は次のようになります:
config :logger, :default_handler,
level: :error
config :logger, :default_formatter,
format: "$time $message $metadata"