浏览 6475 次
锁定老帖子 主题:XRuby 0.3.0发布了!
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-08-09
发布信息: http://xruby.blogspot.com/2007/08/xruby-030-released.html JavaEye镜像: http://xruby.iteye.com/blog/110336 这个版本最大的变化是,受到JRuby中Java 5相关讨论的启发,加入了以Annotation绑定Java方法和Ruby方法,简化了代码的编写。现在不必像之前那样定义Wrapper,注册方法了,只要像下面这样写代码,剩下的工作XRuby帮你完成。 @RubyLevelClass(name="String") public class RubyString { @RubyLevelMethod(name="to_f") public RubyFloat to_f() { ... } } 相关内容我在自己的blog上做了一个小结: http://dreamhead.blogbus.com/logs/7548397.html 另外,我们通过了更多的单元测试,向着更完整的Ruby实现进发着! 我们始终欢迎对编译器和动态语言感兴趣的朋友,在这里,总有一些有趣的问题等着我们解决。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-08-10
XRuby的速度怎么样啊?
|
|
返回顶楼 | |
发表时间:2007-08-11
在benchmark上表现很好,这里有一份老的数据:
http://xruby.iteye.com/blog/69937 现在的版本比这老数据又提高了很多,除了个别cases,基本都比c ruby 1.8.6快很多.但比将来的YARV(ruby 2.0)还有差距. 运行实际程序和benchmark是有区别的,我现在发现test::unit在xurby下比cruby慢.当然有可能只是个别库函数实现的不好造成的,还没有来得及研究. 由于很多工作要做,优化做得很少,所以现在这个数据我算是比较满意了.其实一开始甚至有些惊奇,也算是证明了编译成java bytecode是一条确实可行的路. |
|
返回顶楼 | |
发表时间:2007-08-11
客观的说,加入Annotation多多少少会对性能有一点影响。因为某些代码原本可以在Method Wrapper中就直接返回,而现在,统一转到类中去处理,也就是要多一次函数调用。不过,相对于获得的优势而言,这点损失是值得的。事实上,正是因为转到了类中进行处理,有些Method Wrapper中通过函数获取的字段,反而变成了直接对字段的访问,这样是有助于性能提升的。
XRuby的builtin库实现许多有不少是直接借助Java类库完成的,比如String中就有不少代码是借助java.lang.String的特性完成的。但实际上,这么做会有一些性能的损失,因为我们都知道Java的String是不变的,所以,每次操作的结果都是产生一个新的对象,这样的话就会造成一些性能上的损失。在XRuby 0.3.0的发布版本中,我修改了部分代码的实现,直接对char进行操作,性能有了一个比较明显的提升。如果有兴趣的话,可以对比一下,之前版本的实现。 其实类似的问题,在XRuby中还有不少,每次修改这种实现,在解决问题的同时,也是一个加深对底层实现理解的过程。这也就是我为什么会说,总有一些有趣的问题等着我们解决。 |
|
返回顶楼 | |