作者godfat (godfat 真常)
看板Ruby
标题[心得] JRuby - jrubyc
时间Mon Oct 29 15:50:12 2007
断线 >_<
我的 p 币 >_<
: → poga:不是说The compiler is complete吗...? 不清楚 10/15
个人觉得,如果 JRuby 只是 interpreter, 实在意义不大
根本就只是慢上加慢,恐怕只能拿来做实验而已?
但是如果有 compiler 那就完全不一样了 :D
最直接的意义就是,不用灌 ruby, 只要有 jvm 就能跑 ruby program,
而现在真的很多地方都有 jvm, 这个平台大有利用价值...
於是去抓了 jruby, 想试试他的 compiler 用起来感觉如何。
设定设了半天,总算是可以用了.......
不是很难设定,只是手册没写清楚,再加上 java 设定我不熟,
所以就试了半天才弄出来 = =b
大致上就是把 jruby 的 bin 设到 path 下,
然後 classpath 中除了 lib/jruby.jar 和 lib/asm-2.2.3.jar 要加入,
还要连 . 也加入 classpath.(我以为预设都会加,一直没怀疑到这个问题)
这边有个大致上的效能比较:
http://www.headius.com/jrubywiki/index.php/JRuby_Compiler#Performance
老实讲满失望的,compile 过的 ruby 也只跟 ruby interpreter 差不多而已。
jruby 本身的 interpreter 更别说了,慢到不行了...
不过最大的问题是!!
godfat benchmark 3.2$ jrubyc name.rb
Error -- Not compilable: Can't compile node: RescueNode[]
居然不支援 rescue @@
看来企图用 bytecode 加速是完全失败了......
本来我是想试 yarv 的,不过弄半天老是有问题,所以转战 jruby
看来还是不太乐观啊
或许还是得考虑 ruby-inline 或 swig 了...
至於其他小东西的话:
godfat jruby 3.2$ ruby hello.rb
hello jruby!!
godfat jruby 3.2$ jruby hello.rb
hello jruby!!
godfat jruby 3.2$ jrubyc hello.rb
godfat jruby 3.2$ java hello
hello jruby!!
这倒是没什麽问题 -_-b
再仔细看看上面那页 wiki 上写的:
Notable things that do not compile in either safe or unsafe mode:
* class and module definitions
* singleton class and method definitions
* blocks with arguments
* method defs with optional, "rest", or block arguments
* some method calls are unsafe, like "block_given?" and "local_variables"
* splats and multiple assignment (a, b = b, a)
连 class 和 module 都不能 compile !?
看来我要等 jruby 2.0 甚至 3.0 才能正常使用我的 ruby code 了....
(不能用 class/module 跟不能用 ruby 搞不好差不了太多...)
yarv 正式版快出吧!!
--
「行け!Loki!」
(rocky ロッキー)
-Gurumin ぐるみん 王子? XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.218.90.242
1F:→ poga:不能用class跟module.. 那不是全部都不能用了吗 -_- 10/29 21:21
2F:→ godfat:好个 JRuby compiler "finished", 是吧... 10/29 21:30
3F:→ ryudo:有听过了,看来只能期待XRuby 10/31 15:59
4F:→ godfat:试了一下 xruby, 看起来比 jruby 好用,但是缺 lib 缺很多 11/01 01:10
5F:→ godfat:gem 弄不起来就不继续试了,因为我程式几乎都要 gem 11/01 01:10