AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

JRuby 1.7 Preview 1 发布:默认使用 Ruby 1.9,通过 Invokedynamic 改进了性能

  • 2012-07-08
  • 本文字数:1332 字

    阅读完需:约 4 分钟

自从 JRuby 1.6 系列的首个版本发布以来已经过去了一年多的时间,现在 JRuby 1.7.0 的首个预览版也已经发布了。

JRuby 1.6 是首个兼容于 Ruby 1.9.2 的版本,借助于 JRuby 1.7,Ruby 1.9 甚至已经成为了默认的运行时模式。在此次发布声明中,其他值得关注的变化有:

  • 修复了众多 1.9.x 的兼容性问题
  • 支持 Java 7 的 invokedynamic
  • 性能与并发的改进
  • 放弃了对 Java 5 的支持(需要使用 Java 6+)
  • 更新到 Rubygems 1.8.24
  • 更新到 Rake 0.9.2.2

对 invokedynamic 的支持是自动开启的,但为了能够充分利用这一点,你需要在最新发布的 Java 7 上运行。InfoQ 有幸采访到了Charles Nutter以深入了解 JRuby 是如何从对 invokedynamic 的支持上获益的:

JRuby 对 invokedynamic 的使用使得我们更加接近于这一目标:让 Ruby 达到 Java 一样的运行速度。由于现在 JVM 能够清楚地理解我们是如何进行动态调用的,因此它可以对这些动态调用进行优化,就像对常规的静态类型调用所做的那样。突然间,那些使得 Java 运行速度加快的小技巧都能够应用到普通的老式 Ruby 代码上了。这真是太奇妙了。 无论是 JRuby 还是 JVM 都有很多尚未挖掘出的潜力。目前 JRuby 对 invokedynamic 的使用尚未达到 100% 的优化程度,在某些情况下存在一些不必要的浪费会导致其运行速度变慢。既然我们已经可以使用 invokedynamic,那么我们就可以将精力放在改进对其的使用上。JVM(特别是 Hotspot)还能为我们带来更大的帮助。最初的 Java 7 发布并未很好地优化 invokedynamic,但这是功能性的。Update 2 为我们带来了可靠的 JVM JIT 支持以及对服务端编译的优化。Update 6 应该会对 JIT 逻辑进行重写,使得完整的 JVM 优化集合能够更加轻松地应用到 invokedynamic 调用上。

我们将会继续与 Hotspot 开发人员合作以确保 invokedynamic 能够持续得到改进。

InfoQ:目前的 JRuby 是最快的 Ruby 实现么?

我觉得最终我们可以这么说。总会存在一些情况是我们没有处理的,或是需要未来的 JVM 改进支持的,但一般来说,JRuby 总是要比其他的 Ruby 实现快一些。随着在 JRuby 与 OpenJDK 上 invokedynamic 工作的不断进行,我们会走得更远。

InfoQ:Fibers 怎么样了,我听坊间传闻 Java 8 将会对协程提供一些支持。你了解么?

很遗憾,协程并不会添加到 Java 8 中,但可能会添加到 Java 9 中。为了降低 JRuby Fiber 实现的代价,我们现在正与 Google 代码之夏的一个学生一同探索基于 Kilim 的实现。但我们也不知道付出的努力是否能够成功,但他已经取得了一些进展。

InfoQ:Tom Enebo 与你从 Engine Yard 来到了 Red Hat ,可你还是在继续从事 JRuby 的工作。你还打算从事 Red Hat 自己的 JVM 语言 Ceylon 的开发么?

一切皆有可能!我对自己的这个转变感到兴奋异常,因为我的工作除了继续开发 JRuby 外,还会探索其他的 JVM 语言以及 JVM 对其的支持。我完全相信对于语言来说,JVM 是最棒的运行时,无论这些语言是静态还是动态的;现在,我就会证明给大家看。

InfoQ:感谢你能接受我们的采访!

感兴趣的读者可以从 JRuby 网站上下载 preview1 版,如果使用的是 RVM ,那么你可以通过 rvm install jruby-1.7.0.preview1 安装。

查看英文原文: JRuby 1.7 Preview 1 Released: Defaults to 1.9 and Improves Performance With Invokedynamic

2012-07-08 06:411383
用户头像

发布了 88 篇内容, 共 262.7 次阅读, 收获喜欢 8 次。

关注

评论

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

TDengine 新能源行业研讨会上都说了啥?精彩回顾!

TDengine

数据库 tdengine 时序数据库

如何玩转云端文生视频、0码构建AI应用?华为云专家来揭秘

华为云开发者联盟

人工智能 云原生 华为云 华为云开发者联盟 企业号2024年6月PK榜

Linux 下的性能监控与分析技巧

左诗右码

Linux

移动通信产业,需要通往AI时代的“波托兰海图”

脑极体

通信

自研一款共享集群数据库,有多难?

Geek_2d6073

基于 Paimon 的袋鼠云实时湖仓入湖实战剖析

袋鼠云数栈

数据湖 实时计算 实时数据 实时湖仓 paimon

XMind 2024思维导图软件下载安装 xmind绿色破解版资源 Mac/win

理理

利用反射API和AOP实现业务逻辑的自动化重构

技术冰糖葫芦

API Explorer API boy api 货币化 API 文档

SSH安全远程登录与端口转发

左诗右码

SSH

Visio文件编辑查看工具:Visio Viewer for Mac 激活版

你的猪会飞吗

mac软件下载

火山引擎ByteHouse:新一代云数仓必不可少的五大核心能力

字节跳动数据平台

数据库 大数据 云原生 Clickhouse 数仓

阿里巴巴1688商品详情API返回值解析:商品信息实时更新与监控

技术冰糖葫芦

API Explorer API boy api 货币化 API 文档

office2021破解版安装包 mac/win

理理

介绍几种 MySQL 官方高可用方案

Simon

MySQL 数据库 MySQL高可用

低代码+定制:优化项目管理的新方案

天津汇柏科技有限公司

项目管理 低代码 软件开发定制

🚀 快速上手LangChain开发实战:1小时内掌握《Generative AI with LangChain》的核心!

Epsilla

人工智能 AI langchain rag Epsilla

vivo 互联网自研代码评审 VCR 落地实践

vivo互联网技术

git gitlab 代码评审 idea intellij VCR

工业元宇宙AI超级终端“派中心一体机”问世

科技汇

通过搭建 24 点小游戏应用实战,带你了解 AppBuilder 的技术原理

百度Geek说

企业号 6 月 PK 榜 AI 原生云 AppBuilder

接口测试:Mock 工具与定制化

测试人

软件测试 Mock

Databend 怎么看 OpenAI 收购实时数仓 Rockset?

Databend

突发,OpenAI宣布终止对中国提供服务,影响在哪里?

AR玩家

openai GPT Rokid Vision pro 炬目AR

观测云产品更新 | Pipelines、智能监控、日志数据访问等

观测云

智能监控 pipelines

漫步5G-A City,一份独属于上海的浪漫

脑极体

Adobe Creative Cloud(Adobe桌面应用程序ACC)轻松解决各种adobe安装问题

理理

JRuby 1.7 Preview 1发布:默认使用Ruby 1.9,通过Invokedynamic改进了性能_Ruby_Mirko Stocker_InfoQ精选文章