JRuby的性能优化(update)
2023-03-14 10:19:06 时间
越来越觉的JRuby是个很有前途的项目,结合Ruby的性感语法和java极其丰富的类库,况且有团队持续不断地修正bug、改进性能,这样的玩意完全有成为“少男杀手”的潜质。JRuby wiki上列出了性能优化的四条建议:
1、调优编译器,JRuby早就弃暗投明跟随XRuby走上了编译这条牛B的道路,将Ruby Script编译成字节码,因此这个环节是断断不能忽略的。
两种编译方式:
AOT模式:直接生成class文件,脱了Ruby这层皮,咱就是人见人“爱”的java了。
JIT模式:充分利用成熟的jit技术,咱不全脱,朦胧美才是真的美。默认从0.9.9版本开始就是开启的,关闭的话(要我说还不如全脱)
2、关闭ObjectSpace
ObjectSpace是Ruby用来操作所有运行时对象的模块,这个功能相当牛x。这个的实现在c ruby里是比较容易的,但是对于JRuby代价就比较昂贵了,其实就大部分情况下你基本用不到这个东东,那么最好就是关闭它,JRuby提供了
3、开启线程池
我们知道,在c ruby中的线程是绿色的轻量级线程,因此运行时就动不动开个百来十个“线程”跑一跑充下款爷;然而在JRuby中,线程的实现那可是实打实的本地线程(也就是Ruby线程与java线程一比一),你这么动不动上百个线程那不慢才怪了。因此JRuby提供了线程池选项,运行时尽可能地满足你的要求开线程,但是当短命的Ruby线程重复创建的时候,这些线程将被复用,这在大多数情况下能提高性能表现,特别是在每次调用都启动一个线程的情况下。不过具体效果还是要测试的实际数据说话。
4、使用Java "server"模式虚拟机,地球淫都知道
1、调优编译器,JRuby早就弃暗投明跟随XRuby走上了编译这条牛B的道路,将Ruby Script编译成字节码,因此这个环节是断断不能忽略的。
两种编译方式:
AOT模式:直接生成class文件,脱了Ruby这层皮,咱就是人见人“爱”的java了。
JIT模式:充分利用成熟的jit技术,咱不全脱,朦胧美才是真的美。默认从0.9.9版本开始就是开启的,关闭的话(要我说还不如全脱)
jruby -J-Djruby.jit.enabled=false
2、关闭ObjectSpace
ObjectSpace是Ruby用来操作所有运行时对象的模块,这个功能相当牛x。这个的实现在c ruby里是比较容易的,但是对于JRuby代价就比较昂贵了,其实就大部分情况下你基本用不到这个东东,那么最好就是关闭它,JRuby提供了
jruby -J-Djruby.objectspace.enabled=false
选项来关闭它。3、开启线程池
我们知道,在c ruby中的线程是绿色的轻量级线程,因此运行时就动不动开个百来十个“线程”跑一跑充下款爷;然而在JRuby中,线程的实现那可是实打实的本地线程(也就是Ruby线程与java线程一比一),你这么动不动上百个线程那不慢才怪了。因此JRuby提供了线程池选项,运行时尽可能地满足你的要求开线程,但是当短命的Ruby线程重复创建的时候,这些线程将被复用,这在大多数情况下能提高性能表现,特别是在每次调用都启动一个线程的情况下。不过具体效果还是要测试的实际数据说话。
jruby -J-Djruby.thread.pooling=true
4、使用Java "server"模式虚拟机,地球淫都知道
jruby -J-server myscript.rb
5、尽量使用最新的jdk,在我的测试中,jdk6跑jruby是效率最高的。
文章转自庄周梦蝶 ,原文发布时间 2008-01-31
相关文章
- 触类旁通,从400错误看Nginx常见故障与修复
- 5 个获取 Linux 主机信息的命令
- 如何在 Linux 下格式化 USB 设备
- 谷歌与Pivotal联手,真的能改变企业级云计算格局吗?
- 高考估分太头疼?大数据算法或成预测成绩新方式
- 告警:IO利用率飚至60%+,请及时排查优化!
- 八大 Linux/Unix 服务器内存转储工具
- 当红架构Cloud Native,怎么搭建才能成为上云助攻手?
- 原生的 exFAT 支持已经来到 Linux 平台
- 从源码探究MySQL5.7高吞吐事务量的背后操手
- 新电脑+旧系统:教你在不同机器间转移Linux
- 网易云基于Kubernetes+Docker的容器服务研发实践
- 金融圈食物链大揭秘,五分钟变身金融圈内人!
- 我安身立命的编程指导
- myeclipse的server视图经常报nullpoint
- Ubuntu 的软件的管理工具
- 女孩子学Linux之硬盘分区篇
- 云服务器ECS下的FTP服务的安装配置与使用
- 关于未来十年企业架构的十个关键词
- 如何设计一个牛掰的大型项目架构?