TorqueBox Ruby 应用程序平台是否可以与 Ruby 企业版一起使用?如果是这样,那么 REE 和 Ruby 1.9.x 与 TorqueBox 一起使用时有什么明显的区别吗?
3 回答
Torquebox 仅在 JRuby 平台上运行应用程序。它可以在 1.8 或 1.9 模式下运行不同的应用程序,但不支持一些依赖于 C 扩展的 gem。
根据 TorqueBox 文档,它的默认配置是用于 JRuby。话虽如此,它是开源的,并且很可能修改相应的资源以使用 REE 解释器或 1.9.x 标准解释器,但是最新版本的 JRuby 与 1.9.2 兼容,并且通常在较长时间内获得更好的性能的运行时间。
我建议使用他们使用 JRuby 的默认配置。
我使用 REE 的唯一原因是写时复制的友好性,允许我以较低的内存成本分叉子进程。
除了 TorqueBox 仅限于 JRuby(由于某些依赖项)之外,它是一个使用线程而不是进程进行扩展的平台。Ruby 1.8(和 1.8 的 REE)使用绿色线程,不推荐。Ruby 1.9 使用本机线程对此进行了改进,但是仍然有一个全局解释器锁 (GIL),因此在大多数情况下它仍然不是很有效(在某些情况下它确实提高了效率)。
但是,使用没有 GIL 的 JRuby 或 Rubinius 允许真正的线程,从长远来看,这可以更有效地使用内存,更好的垃圾收集,并允许您使用通常会启动新进程的线程.
阅读 TorqueBox 的文档后,它似乎是一个非常强大的一体化平台,可以部署 Ruby 应用程序。在 JRuby 下绝对值得一试。