Erlang/Elixir Elixir vs Ruby Showdown

yukihiro_matz · 2014年06月30日 · 最后由 yukihiro_matz 回复于 2014年09月18日 · 4069 次阅读

Phoenix 框架作者使用 Elixir 的宏和模式匹配实现一个 i18n 的库,Elixir 实现是 Ruby 的 100 倍 (不是关键)! 详细,文章地址:

http://littlelines.com/blog/2014/06/27/elixir-vs-ruby-showdown-part-one/

其它 Ruby + Elixir: Polyglottin' FTW!

这也要跑分啊

就是把 i18n 翻译编译成了 pattern match 的函数, 如果 i18n 的数据来源是数据库并且要实时更新 (例如翻译人员输入) 的话, 就不行了...

Ruby 好慢啊,吓尿了,立马 rvm uninstall all

#4 楼 @swordray 性能不是关键, 作者只是做了个比较说明 Erlang vm 对模式匹配优化很好. 使用宏生成代码. 这篇文章的重点不是讲性能啊

#4 楼 @swordray Rubist 是不是最讨厌说性能了啊

首先,写这文章的人数学有严重问题

Elixir (0.14.1) Average across 10 runs: 1.63s
Ruby (MRI 2.1.0) Average across 10 runs: 118.62s
That's a 100x speed improvement for Elixir over Ruby

118.62 / 1.63 == 72.773

当然这也很快

现在就等一个 Rails on Elixir 了

如果编译模板的时候翻译资料就完整了, 那么 ruby 也有更快的 i18n 翻译法

例如 https://github.com/slim-template/slim/blob/master/doc/translator.mdtr_mode 设置为 static 的话, 运行期就不会调用 i18n 了.

#6 楼 @yukihiro_matz 所有语言都需要考虑性能,只不过性能优化最重要的原则就是不要过早优化

跑分再高又有什么用呢? 真跑起来,恐怕汇编是最高的。

#13 楼 @rubyu2 又着急了,就是比一下,仅此而已,我还是会用 Ruby 的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号