为什么MRI是主流的Ruby解释器,而它表现最差?

Özg*_*gür 0 ruby interpreter ruby-on-rails ruby-enterprise-edition

看过这个解释器比较图后,我想知道MRI主流使用背后的原因,尽管它表现最差.为什么不更频繁地使用KijiRuby Enterprise Edition ; 缺乏宝石支持或其他什么? Ruby比较图

例如,Ruby Enterprise Edition是由一些最受欢迎的公司选择的,这归功于它的写时复制功能 ; 我想知道是否有其他解释器实现它.

REE可以轻松地与现有的Ruby解释器并行安装,允许您以最小的麻烦或风险切换到REE.REE已经出现多年了,并且已经被许多知名网站和组织使用,例如 纽约时报,Twitter,Shopify37signals.

"我们切换到企业ruby以获得[copy-on-write]内存特性的全部好处,我们绝对可以确认其他人报告的内存节省30%.即使按今天的硬件价格,也可节省数千美元."

Dar*_*ust 6

MRI是Matz的Ruby Interpreter的缩写.Matz是Yukihiro Matsumoto的简称,它是Ruby的发明者和主要作者的名字.这就是为什么它是主要的实现:它是最初的实现,所有其他的后来出现.MRI仍然是参考,所有其他人需要与MRI兼容.但Matz试图让开发更加规范驱动而不是实现驱动的AFAIK.

  • 除非你已经拥有一个非常繁忙的交通站点,否则MRI就足够了.所有重要的Linux发行版都有一个包,安装它是一个单行命令.其他实现可能在性能方面更好,但在应用程序的早期阶段(当流量较低等)时,这将是不成熟的优化.即使你拿起更多的交通MRI也不会是第一个瓶颈. (7认同)
  • 不,我们使用它是因为它在现实世界中使用得足够快,而且它是该语言的标准.如果某些东西应该起作用,它将适用于MRI. (4认同)
  • @Comptrol:也许还因为受欢迎,但我猜他们使用它的主要原因是因为它是*引用*.如果它是(正确的)Ruby代码,你可以依赖它在MRI上最正确地工作,因为MRI基本上定义了什么是"正确的".另外,我不知道其他实现提供了多少Ruby标准库(比如OpenSSL绑定和东西).因此,MRI可能提供其他实现可能缺少的功能/库. (3认同)