【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

Rhino 速度将得到提升

  • 2011-07-11
  • 本文字数:1090 字

    阅读完需:约 4 分钟

近日,JRuby 专家 Charles Oliver Nutter 开始参与 Rhino 项目(JavaScript 的 Java 实现)以提升 Rhino JavaScript 运行时的速度,进而实现与 V8 的竞争。虽然 Rhino 拥有可靠的实现,但在性能上却无法与其他的 JavaScript 运行时相提并论。Nutter 认为 Rhino 可以通过 Invokedynamic 与其他优化手段扭转颓势。这可以使 Rhino 达到与 V8 相同的水准,至少也能与 V8 展开竞争。

InfoQ 有幸采访到了 Nutter 以了解他与 Rhino 团队现在正在从事的工作。Nutter 打算使用 JVM 的 Invokedynamic 将 Rhino 的派发机制直接连接到 JVM 的优化编译器上。总的来说,这么做可以降低或消除调用期方法查找、参数装箱的代价,并且可以通过内联与优化实现JavaScript 对JavaScript 以及JavaScript 对Java 的调用。Nutter 说到使用invokedynamic 的另一个好处在于如果使用了Java 6,那么Rhino 的调用逻辑会变得更简单。

InfoQ 又向 Nutter 问到,随着 JavaScript 变得越来越重要,让 JVM 拥有更快的 JavaScript 实现是不是变得很重要了。Nutter 回答到:

我个人认为对 JavaScript 的大肆宣传有些过分了。对于浏览器来说它是一门优秀的语言,但主要原因是所有浏览器都支持它,而并不是说这门语言要比其他语言更好。 在服务器端,它变得流行的原因在于现在的运行时很不错,现有的面向客户端的众多库也适用于服务器端。

然而,考虑到最近 JavaScript 在端到端应用的日渐流行,那么再来一个 JVM 版也是自然而然的事情了。但尴尬的是最快的托管运行时——JVM——运行 JavaScript 的速度却无法与当前的竞争者相抗衡。我觉得是时候改变了。

最后,我们问 Nutter 从实现的角度来看,Rhino 与 JRuby 相比如何。Nutter 回答到:

Rhino 在很多方面都是更简单的一个目标,因为它并不具备 Ruby 的一些特性。然而,它代表了一种有趣的挑战,因为其基于原型的对象模型无法存储方法表缓存,而 Ruby 则可以做到。V8 所用的技术与 John Rose 的“DavinciMonkey”(基于 invokedynamic 的 Rhino 的一个早期尝试)——如将生成的合成类作为原型已经进行了修改——它可以更容易地处理 Rhino 不固定的类型结构。

Chrome 所用的 V8 JavaScrip 引擎与 Rhino 之间存在巨大的性能上的鸿沟。Nutter 说诸如 invokedynamic 等 JVM 特性可以填平这个鸿沟,但 Rhino 需要不断改进自身的性能才行。虽然 Rhino 是个不错的实现,但我们还可以使用其他一些技术来提升速度,可以使用新的 JVM 特性如 invokedynamic,也可以不使用。

现在说 Rhino 到底能不能与那些专门针对 JavaScript 的 VM 抗衡还为时过早,但毫无疑问,Rhino 的速度将会得到极大的提升。

查看英文原文: Rhino is About to Get a Lot Faster

2011-07-11 13:091840
用户头像

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

关注

评论

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

麒麟操作系统是什么?和linux的区别是什么?

行云管家

信创 麒麟操作系统

ChatGPT与Web的完美结合:创造一加一大于二的化学反应

加入高科技仿生人

Web 低代码 ChatGPT

重磅再推 | 基于OpenSearch向量检索版+大模型,搭建对话式搜索

阿里云大数据AI技术

人工智能 搜索引擎 企业号 6 月 PK 榜

KaiwuDB 数据库高可用方案及落地实现

KaiwuDB

KaiwuDB 数据库高可用

华为云企业快成长安全技术创新论坛广州站举办在即 都有哪些亮点干货?

说山水

体验昇腾Ascend C 编程语言极简易用的算子开发

华为云开发者联盟

人工智能 华为云 昇腾AI 华为云开发者联盟 企业号 6 月 PK 榜

5款超级好用的开发效率工具,建议收藏!

引迈信息

程序员 前端 低代码 开发效率

Python的离线安装

代码的路

Bartender 4 for Mac(菜单栏应用管理软件) 中文

背包客

macos Mac 软件 mac软件下载 MacBook Pro Bartender

卡奥斯获开放原子开源基金会黄金捐赠人授牌

Openlab_cosmoplat

开放原子全球开源峰会

Koordinator 最佳实践系列:精细化 CPU 编排

阿里巴巴云原生

阿里云 云原生 Koordinator

提升网站速度,选择香港主机的三大理由!

一只扑棱蛾子

香港主机

博睿数据应邀出席第五届双态IT北京用户大会,分享《如何帮助用户构建高级可观测性》

博睿数据

可观测性 AIOPS 智能运维 博睿数据 IT行业

Pycharm配置远程调试

代码的路

我的多巴胺回来了!双手奉上在rumble上下载视频的最佳秘诀!

frank

三维人脸建模和驱动技术,让数字人快速“活”起来

华为云开发者联盟

人工智能 华为云 数字人 华为云开发者联盟 企业号 6 月 PK 榜

《OpenHarmony 共建地图 2.0》在2023开放原子全球开源峰会发布

新消费日报

Python和Anaconda的版本对应关系

代码的路

火山引擎金融专区通过安全等保四级资质测评

科技热闻

清爽快速全面的网址导航(cooltools.top)

Larry

人工智能 AI AIGC ChatGPT

连续两年!PingCAP 入选 Gartner 云数据库“客户之声”,获评“卓越表现者”最高分

PingCAP

卡奥斯联合开放原子开源基金会倡议发起“云原生工作委员会”

Openlab_cosmoplat

开源社区 开放原子全球开源峰会

卡奥斯正式加入开放原子开源安全委员会

Openlab_cosmoplat

开源社区 开放原子全球开源峰会

通过低代码平台,打造智能进销存系统

这我可不懂

低代码 进销存管理系统 进销存系统

美团买菜基于 Flink 的实时数仓建设

Apache Flink

大数据 flink 实时计算

基于阿里云 Serverless 容器服务轻松部署企业级 AI 应用

阿里巴巴云原生

阿里云 Serverless Kubernetes 云原生 ASK

软件测试/测试开发丨Pytest测试框架学习笔记

测试人

程序员 软件测试 pytest

MySQL读取的记录和我想象的不一致

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

Tower for Mac:强大的Git客户端

背包客

macos git Tower Mac 软件 mac软件下载

Rhino速度将得到提升_Java_Rick Hightower_InfoQ精选文章