Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。
最近发布的 0.26 版本引入了增量编译。该项特性改进了构建工具,仅在必要的情况下编译所需模块,而不是整个包,从而显著提升 Gleam 编译器性能。
下面是官方提供的性能测试数据,参照对象上一个版本的 Gleam。
- Erlang
Benchmark 1: v0.25 Time (mean ± σ): 18.443 s ±0.949 s[User: 18.458 s, System: 2.995 s] Range (min … max): 17.102 s … 19.968 s10 runs Benchmark 2: v0.26 Time (mean ± σ): 140.8 ms ± 3.9 ms[User: 92.5 ms, System: 46.4 ms] Range (min … max): 138.0 ms … 156.1 ms20 runs Summary 'v0.26' ran 130.99 ± 7.67 times faster than 'v0.25'
- JavaScript
Benchmark 1: v0.25 Time (mean ± σ):1.861 s ±0.026 s[User: 1.543 s, System: 0.299 s] Range (min … max):1.833 s …1.927 s10 runs Benchmark 2: v0.26 Time (mean ± σ): 145.3 ms ± 2.9 ms[User: 92.9 ms, System: 50.8 ms] Range (min … max): 141.4 ms … 154.3 ms20 runs Summary 'v0.26' ran 12.81 ± 0.31 times faster than 'v0.25'
Gleam 团队表示,下一步将继续改进编译器 IR 的效率、实现更精确的缓存失效策略、以及多线程编译。
此版本另一项值得关注的变化是支持在 Deno 运行时上运行。团队表示,Deno 在许多方面与 Node.js 相似,但它更符合 Web 标准 API,具有更好的安全性和流畅的开发者体验。
name = "my_project" version = "1.0.0" [javascript] runtime = "deno"
详情查看发布公告。