【发布时间】:2025-12-28 18:05:11
【问题描述】:
在Is there an advantage to running JRuby if you don't know any Java? 中,如果您只是想要一个比“Ruby”(MRI/YARV)更好的 Ruby 实现,人们建议使用 JRuby。
您不使用 JRuby 的潜在原因是什么?
其他人提到过的有:
- 短节目的表现。 JRuby 被描述为对于较长的程序速度更快,但初始化时间较长。解决方法已在 in this question 讨论。
- C 扩展:JRuby 支持一些but not all 与 MRI/YARV 一起使用的 C 扩展。
- 并发是一把双刃剑。 There's non-thread-safe code out there 人们还没有发现,因为最流行的实现没有真正的并发性。
- JRuby can use more memory.
- JRuby 有decided not to do CRuby 所做的某些事情。这包括延续(我认为无论如何在 CRuby 中已弃用)和 fork。它们还具有不同的原生字节序和时间精度。
- JRuby doesn't enable ObjectSpace 默认。
我的潜在原因包括:
- 您使用的库可能未设计为在 JRuby 下运行。例如,在 GitHub 上有 127 个观察者和 60 个分支的 BioRuby,在 JRuby 上有一个minor incompatibility。
- 担心、不确定和怀疑使用不太流行的实现。我知道 JRuby 通过 RubySpec 比 CRuby 好,但是 RubySpec 还没有完成。
您还有什么其他原因不使用 JRuby 吗?
【问题讨论】: