Ruby 请教一下:JRuby,Rubinius 和 MRI,选哪个好?

sickate · 2014年10月06日 · 最后由 sickate 回复于 2014年10月06日 · 3903 次阅读

想请教一下,现在如果上 puma 或者 unicorn 这种支持多线程的 server,是不是选 JRuby 或者 Rubinius 更好一点?但是我看了一下 JRuby 好像只有 1.9 的版本,所以比较犹豫。用 JRuby 在高并发的情况下优势比 MRI Ruby 2.0 有多少呢?

另外还有个题外话的问题:JRuby 的 web app 打包成的 war 包部署是不是可以达到保护源码的目的(假设我需要在客户的机器上部署 web app)?我听一个朋友说 Jruby 的包也能解出 ruby 源码的,不知是否正确?

其他不能答复你,但是 war 包是不能保护源代码的。

#1 楼 @flowerwrong 多谢。我一直看网上说 jruby 可以保护源码,看来是不正确的了。

直接的用 jruby 自带的打包 war 是不能保护源代码的。需要把 rb 编译成 class.还要进行一些处理才行。总之比较麻烦...看最近的 http://www.techempower.com/benchmarks/ 测试结果。jruby 不比 MRI 快多少。

你搞错了,puma 才是多线程的,所以 puma 适合配 jruby;unicorn 是多进程的,又因为 jruby 启动比 mri 要慢,故 unicorn 配 mri 才更加适合。

#3 楼 @yzdel2000 多谢。但这个测试结果里没看到 puma 或者 unicorn 啊,只能看到用的 framework,哪里能看到他使用什么 server 测的呢?

#4 楼 @layerssss 原来如此。我刚才又找了些 unicorn 的介绍,的确是 multi process 的,好像和 passenger 更接近一点

需要 登录 后方可回复, 如果你还没有账号请 注册新账号