Elixir v1.15 已发布,这是一个小版本更新,主要改进了编译和启动时间。此外还完成了与 Erlang/OTP logger 的集成,带来了开箱即用的日志轮询 (log rotation) 和压缩等新功能。
- 改进编译和启动时间
Elixir 现在会在编译前缓存和修剪加载路径,确保项目(和依赖项)在更接近生产环境中的编译速度更快。
简而言之,因为 Erlang VM 从代码路径加载模块。Erlang 和 Elixir 附带的每个应用程序以及每个依赖项都会成为代码路径中的一个条目。所以代码路径越大,Erlang 寻找模块所需要做的工作就越多。
在以前的版本中,Mix 只会将条目添加到加载路径中。因此,如果编译了 20 个依赖项,然后去编译第 21 个依赖项,则代码路径将有 21 个条目(加上所有 Erlang 和 Elixir 应用程序)。由于这允许来自不相关依赖项的模块,并且依赖项越多,编译速度就越慢。
新版本现在将代码路径修剪为仅列出为依赖项的路径,使行为更接近 mix release
。
效果如下:
- 集成 Erlang/OTP logger
此版本提供了额外的功能,例如开箱即用的全局记录器元数据和文件记录。
新版本还软弃用了 Elixir 的 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"
详情查看发布公告。
还没有评论,来说两句吧...