网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 新手入门 > 开发工具 > JRuby的性能优化  

JRuby的性能优化

2008-02-05  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

    越来越觉的JRuby是个很有前途的项目,结合Ruby的性感语法和java极其丰富的类库,况且有团队持续不断地修正bug、改进性能,这样的玩意完全有成为“少男杀手”的潜质。JRuby wiki上列出了性能优化的四条建议:

网管朋友网www_bitscn_net

  1、调优编译器,JRuby早就弃暗投明跟随XRuby走上了编译这条牛B的道路,将Ruby Script编译成字节码,因此这个环节是断断不能忽略的。

网管联盟bitsCN_com

  两种编译方式: 网管u家bitscn.net

  AOT模式:直接生成class文件,脱了Ruby这层皮,咱就是人见人“爱”的java了。

网管u家u.bitsCN.com

  JIT模式:充分利用成熟的jit技术,咱不全脱,朦胧美才是真的美。默认从0.9.9版本开始就是开启的,关闭的话(要我说还不如全脱) 网管u家u.bitsCN.com

  jruby -J-Djruby.jit.enabled=false

网管u家bitscn.net

  2、关闭ObjectSpace 中国网管论坛bbs.bitsCN.com

  ObjectSpace是Ruby用来操作所有运行时对象的模块,这个功能相当牛x。这个的实现在c ruby里是比较容易的,但是对于JRuby代价就比较昂贵了,其实就大部分情况下你基本用不到这个东东,那么最好就是关闭它,JRuby提供了

网管有家bitscn.net

  jruby -J-Djruby.objectspace.enabled=false 网管有家www.bitscn.net

  选项来关闭它。 网管联盟bitsCN@com

  3、开启线程池

网管联盟bitsCN_com

  我们知道,在c ruby中的线程是绿色的轻量级线程,因此运行时就动不动开个百来十个“线程”跑一跑充下款爷;然而在JRuby中,线程的实现那可是实打实的本地线程(也就是Ruby线程与java线程一比一),你这么动不动上百个线程那不慢才怪了。因此JRuby提供了线程池选项,运行时尽可能地满足你的要求开线程,但是当短命的Ruby线程重复创建的时候,这些线程将被复用,这在大多数情况下能提高性能表现,特别是在每次调用都启动一个线程的情况下。不过具体效果还是要测试的实际数据说话。 网管u家u.bitscn@com

  jruby -J-Djruby.thread.pooling=true

网管有家bitscn.net

  4、使用Java "server"模式虚拟机,地球淫都知道

网管联盟bitsCN_com

  jruby -J-server myscript.rb 网管下载dl.bitscn.com

  网管朋友网www_bitscn_net

TAGs   优化   性能   线程   JRuby   Ruby   关闭       这个   编译   jruby      
 上一篇:使用java开发facebook网站应用程序   下一篇:只支持单表映射持久化框架──EasyDBO
JRuby的性能优化 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: