マイクロソフト、.NETアプリを数倍高速化する64ビット用JITコンパイラ「RyuJIT」をテクニカルプレビューで公開。由来は「龍神」

2013年10月17日

マイクロソフトは64ビットの.NET環境に最適化したJITコンパイラ「RyuJIT」(コードネーム)をCTP(Community Technical Preview)として公開中です。RyuJITでは、アプリケーションの起動時間と実行速度の両面でより高速化されているとのこと。

RyuJIT: The next-generation JIT compiler for .NET - .NET Blog - Site Home - MSDN Blogs

.NET Framework BlogでRyuJITを紹介した記事「RyuJIT: The next-generation JIT compiler for .NET」から引用します。

The .NET Code Generation team has been working on a new, next-generation x64 compiler, codenamed RyuJIT. This new JIT is twice as fast, meaning apps compiled with RyuJIT start up to 30% faster (Time spent in the JIT compiler is only one component of startup time, so the app doesn’t start twice as fast just because the JIT is twice as fast.) Moreover, the new JIT still produces great code that runs efficiently throughout the long run of a server process.

.NETコードジェネレーションチームは新しい次世代のx64コンパイラ、コード名「RyuJIT」に取り組んできた。この新しいJIT(Just In Time)コンパイラは2倍速い、つまりRyuJITでのアプリのコンパイルと起動は30%速くなる(JITコンパイラによってかかるコンパイル時間は、アプリ起動の一要素でしかないため、JITコンパイラが2倍速くなったとしても起動時間が2倍速くなるわけではない)。

さらに、新しいJITコンパイラはより優れたコードを生成するため、長時間実行され続けるサーバプロセスも効率的になる。

下記のグラフは、RyuJITと従来の.NETのJITコンパイラとの実行速度の比較です。どの種類のテストでも性能が向上していることが分かります。

fig

これからのJITコンパイラのベースとなる

もともと.NETの64ビット用JITコンパイラは、いちど起動すると長時間実行されるサーバ用プロセスを想定して設計されたため、起動時間よりも生成されるコードの質を重視して開発されていました。一方で32ビット用のJITコンパイラはデスクトップアプリケーションの起動時間を重視していました。

しかし現在では、サーバにおいてもプロセスの迅速な起動が求められるようになったこと、そして64ビット環境がクライアントPCはもとより、タブレットやスマートフォンにまで広がってきていることを考慮し、64ビット環境に最適化したJITコンパイラをあらためて開発したとのことです。

そしてRyuJITが今後の同社のJITコンパイラのベースになると。

While it’s only for x64 right now, it’s a modern compiler that will be the basis of all our JIT compilers in the future: x86, ARM, MDIL and whatever else comes along. Having a single codebase means that .NET programs are more consistent between architectures

いまはこれはx64環境対応だけだ。しかしこのモダンなコンパイラは、今後すべてのJITコンパイラのベースになるだろう。x86、ARM、MDILやそのほかこれからのすべてにおいて。シングルコードベースとなることで、.NTプログラムは異なるアーキテクチャにおけるより高い一貫性を持つことになる。

ちなみに、著名なマイクロソフトウォッチャーのMary Jo Foleyさんは、このRyuJITコンパイラの名前の由来は日本語の「龍神」から来ていると指摘しています

あわせて読みたい

.NET プログラミング言語 Microsoft




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本