9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

Charles Nutter:JRuby 性能再获提升,使用 JRuby 实现 RESTful 服务

  • 2010-06-06
  • 本文字数:830 字

    阅读完需:约 3 分钟

JRuby 核心开发人员 Charles Nutter(headius)近日在其博客中连续发表了两篇文章,介绍了最近他所做的一些有意思的事情:让 JRuby 更快地运行,以及如何用 JRuby 实现 RESTful 服务。

得益于 JVM 自身的性能优化能力,JRuby 的性能能够满足大多数用户的需要,但人们对性能的渴望是无止尽的,自 JRuby 1.1.6 发布之后的 18 个月来,整个 JRuby 开发团队并没有将精力投入在提升性能,现在是时候着手让 JRuby 的性能更上一层楼了。

文章中,Charles 首先对 JRuby 中的 Call Site 做了简单说明,随后给出了优化方法,他所做的工作主要是针对编译器的,具体如下:

  • 将动态转为静态,让编译器识别动态调用,并将其转为静态调用。
  • 减少 Fixnum 的使用,在一些调用路径中使用原子类型值而非封装过的 RubyFixnum 对象。
  • 检测自我递归,直接进行递归调用,而非将其放入动态管道中。

Charles 表示,这样的优化对 JRuby 的兼容性有一些影响,例如会损坏 Ruby 的函数调用堆栈等。

在传统的 Ruby 中要实现 REST,Rails 自然是首选,而在 Java 的世界中情况还不明朗,不过 JSR-311(JAX-RS)正试图统一标准,Charles 在他的另一篇博客中演示了如何在JRuby 中通过 Jersey 来实现 RESTful 服务。

在这个演示中,他用 JRuby 重写了 Jersey 入门文档中的范例,其中还使用了一些 JRuby 1.5 的新特性。只需几条语句就能实现一个 RESTful 服务:

require ‘java’
java_import ‘javax.ws.rs.Path’
java_import ‘javax.ws.rs.GET’
java_import ‘javax.ws.rs.Produces’ java_package ‘com.headius.demo.jersey’

java_annotation ‘Path("/helloworld")’
class HelloWorld
java_annotation ‘GET’
java_annotation ‘Produces(“text/plain”)’
def cliched_message
“Hello World”
end
end

经过 jrubyc 的编译,这段代码就能成为一个“真正”的 Java 类。随后再通过一个简单的服务器程序和一些 CLASSPATH 设置,就能看到亲切的“Hello World”了。

JRuby 为我们带来了一个又一个的惊喜,它还能做什么?让我们拭目以待吧。

2010-06-06 09:332068
用户头像

发布了 135 篇内容, 共 65.3 次阅读, 收获喜欢 43 次。

关注

评论

发布
暂无评论
发现更多内容

Mac杀毒软件 Antivirus Zap Pro for Mac激活版

小玖_苹果Mac软件

币安移除铭文市场的深度解读:背后原因及其对区块链行业的影响

chainwiseweb3

DAPP系统开发 区块链技术开发 dapp开发 铭文 铭文系统开发

AutoMQ 如何在 AWS 上避免 Kafka 跨 AZ 网络传输费用

AutoMQ

kafak Java开发分析工具 AutoMQ AZs 好文翻译

文字处理软件Mellel 6 for Mac激活版

小玖_苹果Mac软件

富士胶片中国可持续发展报告获上海跨国公司地区总部优秀ESG报告

财见

智保未来:国泰产险的 AI 网关革新之旅

阿里巴巴云原生

阿里云 云原生

C语言之输入输出

不在线第一只蜗牛

C# 开发语言

融云 IM 基于 Rust 的鸿蒙 SDK 开发实践

融云 RongCloud

使用观测云排查数据库死锁故障

观测云

数据库

【论文速读】| AutoPT:研究者距离端到端的自动化网络渗透测试还有多远?

云起无垠

开放创新,释放云上数字生产力|2024华为云开源开发者论坛圆满落幕

华为云开源

开发者 云原生 前端 开发者大会 华为云开源

币安移除铭文市场的背后:对区块链、加密市场及用户的影响

chainwiseweb3

区块链技术 dapp开发 BTC铭文 交易所系统 铭文系统

AI 口语学习应用 Speak 新一轮融资估值 10 亿美元;YouTube 推出 AI 多语言配音丨 RTE 开发者日报

声网

年终总结报告ppt怎么做?用AI工具快速自动生成!

职场工具箱

职场 PPT 年终总结 AIGC AI生成PPT

天翼云携手华为共建魔乐社区,共创AI生态新篇章

极客天地

【开源大屏】玩转开源积木BI,从0到1设计一个大屏

JEECG低代码

数据分析 数据可视化 BI 分析工具 数据大屏

CCS'24(全球网络安全四大顶级会议之一)收录云起无垠最新研究成果

云起无垠

Ape-DTS:开源 DTS 工具,助力自建 MySQL、PostgreSQL 迁移上云

小猿姐

MySQL 数据库 postgresql 数据传输 数据迁移

通义灵码,让梦想照进现实更快一点

阿里巴巴云原生

阿里云 云原生

AI语音转录软件AI Transcription for Mac激活版

小玖_苹果Mac软件

磁盘垃圾清理工具Magic Disk Cleaner for Mac激活版

小玖_苹果Mac软件

CAD建模软件BricsCAD 25 for Mac中文激活版

小玖_苹果Mac软件

通义灵码,让梦想照进现实更快一点

阿里云云效

阿里云 云原生

智能图像清晰度处理软件Perfectly Clear Workbench for Mac激活版

小玖_苹果Mac软件

干货!适合TikTok运营的工具推荐

Ogcloud

TikTok tiktok运营 TikTok矩阵运营 tiktok起号 tiktok运营干货

技术同学如何提升业务洞察力

老张

软件开发 系统架构 技术视野 业务洞察力

AICon北京站HarmonyOS技术分论坛开启招募,欢迎开发者踊跃报名

最新动态

Charles Nutter:JRuby性能再获提升,使用JRuby实现RESTful服务_Java_丁雪丰_InfoQ精选文章