为什么Elixir比JRuby快?

时间:2016-08-09 05:15:39

标签: jvm erlang jruby elixir bytecode

我选择了JRuby,因为它与Elixir类似,因为它们都是动态语言,被编译成字节码供VM使用。

如果我理解正确,因为它们是动态的,编译器没有必要的信息来使字节码与它们的静态类型对应物一样有效。

在JVM是基于堆栈的情况下BEAM是注册的基础VM这一事实是否必须做任何事情?

谢谢:)

2 个答案:

答案 0 :(得分:2)

Elixir并不比JRuby快,JRuby也不比Elixir快。有许多任务,其中Elixir比JRuby快,并且它是另一种方式。而且一如既往地取决于许多事情。如果您正在谈论复杂的应用程序Web服务器,可能,但它不是关于基于寄存器或堆栈的VM,而是关于轻量级进程和基于Elixir的Web堆栈的简单性。

答案 1 :(得分:1)

我的猜测是,Elixir语言是" less"动态(或其他qwirks,JRuby的作者必须解决/实现,减慢运行时)。

有一些建议可以加快速度:

https://github.com/jruby/jruby/wiki/PerformanceTuning

https://github.com/jruby/jruby/wiki/Improving-startup-time

https://github.com/jruby/jruby/wiki/Truffle