Jvm 为什么长生不老药比JRuby快?

Jvm 为什么长生不老药比JRuby快?,jvm,erlang,jruby,elixir,bytecode,Jvm,Erlang,Jruby,Elixir,Bytecode,我之所以选择JRuby,是因为它与Elixir相似,因为它们都是动态语言,都被编译成字节码供VM使用 如果我理解正确的话,因为字节码是动态的,编译器没有必要的信息使字节码像静态类型的字节码那样高效 BEAM是一个注册的基本VM,而JVM是基于堆栈的,这与此有关系吗 谢谢:)长生不老药不比JRuby快,JRuby也不比长生不老药快。在很多任务中,Elixir比JRuby更快,这是另一种解决方法。和往常一样,这取决于很多事情。如果您谈论的是复杂的应用程序web服务器,可能是,但它不是关于注册或基于堆

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

如果我理解正确的话,因为字节码是动态的,编译器没有必要的信息使字节码像静态类型的字节码那样高效

BEAM是一个注册的基本VM,而JVM是基于堆栈的,这与此有关系吗


谢谢:)

长生不老药不比JRuby快,JRuby也不比长生不老药快。在很多任务中,Elixir比JRuby更快,这是另一种解决方法。和往常一样,这取决于很多事情。如果您谈论的是复杂的应用程序web服务器,可能是,但它不是关于注册或基于堆栈的VM,而是关于轻量级进程和基于Elixir的web堆栈的简单性。

我猜Elixir语言的动态性不如它原来那么强(或者JRuby的作者必须解决/实现的其他QWIRK,这些QWIRK会降低运行时的速度)

有一些建议可以加快这一进程:


“太长了,读不下去了,谢谢你的评论,但是什么阻止了JRuBuy实现复杂的应用服务器的相同的效率?这是一个很好的写照:TL;DR;没有什么真正的——除了Erlang的参与者模型和它处理进程的方式相结合(Re:1:不映射到OS级别线程)。如果你在谈论App Server,那么你必须考虑到那些是非常复杂的程序,它们可以在不同的因素(或者更坏的情况下)很容易地不同。这仅仅是因为它们的实现质量,独立于执行的运行时环境。基于运行在VM之上的完全独立的软件,很难比较VM的性能。这就像试图通过在一个上运行mysql,在另一个上运行postgres来比较vmware和xen的性能。您的问题标题是:jruby的速度较慢,但您是否有任何测量数据支持这一说法?