JRubyの主要開発者であるCharles Nutter氏は自身のブログにおいてThe Power of the JVMのタイトルのもとスクリプト言語とJava仮想マシンに関する興味深いドキュメントを公開した。Charles Nutter氏はフルタイムでSun Microsystemsに雇用されており、Java仮想マシンとスクリプト言語について語るには適切な人材のひとり。
JRubyは最新版のJRuby 1.1で劇的にパフォーマンスを向上させた。多くの改善が施されたわけだが、特にコールパスを短縮するために導入された次の2つの方法が効果的であったことが説明されている。どちらも典型的な最適化方法のひとつだ。
Groovyは1.5まで機能を増やすことに注力してきたが、パフォーマンスが低いという欠点があった。現在開発が進められているGroovy 1.6では上記の方法でパフォーマンスの向上がはかられており、最新のコードはJRubyのベンチマーク結果をも凌駕していると言及されている。同方法がJava仮想マシンにおけるスクリプト言語の実装において効果的なテクニックであることが示された形になった。
JRubyとGroovyは今後もパフォーマンスを随時向上させる目処がたっており、結果的にスクリプト実行環境の実装でJava仮想マシンでも十分にパフォーマンスが出せることがJRubyとGroovyによって実証されたわけだが、実装者にそれ相応の負担がかかることも明らかになった。Java仮想マシンで実装を軽減するための機能を実現することが、Java仮想マシンをスクリプト実行環境として普及させるためのひとつの鍵となるわけだ。
そういった要求に答えるため、SunはJSR 292: Supporting Dynamically Typed Languages on the Java Platformにおいて型を特定せずにコールを可能にする命令をJava仮想マシンに追加することについて検討を続けてきたが、どうやらこの取り組みは実を結ばないことになるか、大きくその内容を変えることになりそうだ。JSR 292は一見すると有益な方法であるように思えるが、同氏はこれまでの開発から、Javaの型をそのままスクリプト言語の型として使うことがないためJSR 292にはほとんど効果がないことがわかったと説明している。
そして同氏はこれまでの開発の経験からJava仮想マシンでスクリプト言語の実装をサポートするために必要になる機能についてまとめている。これら新しい機能はJDK7で登場することになりそうだ。それら機能はJRubyやGroovyで使われるほか、JythonやRhinoなどJava仮想マシンを使うほかのスクリプト言語にも効果を発揮することになる。Java仮想マシンをスクリプト言語へと拡張する流れは今後も継続することになりそうだ。
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
9ストーリーズ ~バレンタインのエピソード~ [08:05 2/11] キャリア |
|
RX-7改フェラーリ登場!/マジックRX-7XX 【大阪オートメッセ2012】 [08:04 2/11] キャリア |
|
【連載】鉄道トリビア 第137回 山手線と京浜東北線から●●●が消えた!? [08:00 2/11] ライフ |
|
JRグループ、「周遊きっぷ」を見直し - 19の周遊ゾーンが3/31で販売終了に [07:30 2/11] ライフ |
|
「青春18きっぷ」春季用は2/20発売 - 夏季用・冬季用の発売は現時点で未定 [07:30 2/11] ライフ |