2019年11月19日 10時05分 公開
特集/連載

「Java」は遅い言語ではなかった? 「C++」との違いを比較インタープリタ言語とコンパイル言語を比較

「Java」の処理速度は他のプログラミング言語と比べて速いだろうか。それとも遅いだろうか。「インタープリタ言語」と「コンパイル言語」の主な違いや、Javaと他言語を比較する際の注意点を紹介する。

[Cameron McKenzie,TechTarget]

関連キーワード

Java | プログラミング


画像

 「『Java』は遅い?」

 これは、プログラムのパフォーマンスをこぞって向上させようとする開発者の間でよく聞かれる質問だ。2019年9月開催の開発者向けカンファレンス「Oracle Code One 2019」でも、Java関連の「Birds of a Feather」(BOF)セッション(特定のテーマに関するインフォーマルのミーティング)において、このトピックが取り上げられた。

 この質問に対して「いいえ、Javaは遅くない」と答える人も少なからずいる。実際、他のプログラミング言語と比べても、Javaの処理速度は決して遅くない。Javaが採用している、実行時にプログラムをコンパイルする「JIT(Just-in-Time)コンパイラ」(「実行時コンパイラ」とも)のメモリ管理方法やアーキテクチャが、功を奏しているためだ。

インタープリタ言語対コンパイル言語

 Javaには「インタープリタ言語」の側面がある。インタープリタ言語は、プログラムを実行するたびに機械語(コンピュータが読めるコード)に変換するプログラミング言語だ。Javaはプログラムをいったん「バイトコード」という中間コードに変換。Javaプログラムを実行する「Java仮想マシン」(JVM)がこのバイトコードを機械語に変換し、それを読み取って実行する。これに対し、Javaとしばしば比較される「C++」は「コンパイル言語」に分類される。コンパイル言語は、プログラムをコンパイルすることで実行ファイルを作成する。

 Javaのバイトコードは、JVMをインストールしたコンピュータであれば、どのコンピュータでも実行可能だ。この仕組みが「一度書けばどこででも動く」というJavaの理念を支えている。だがバイトコードから機械語への変換はリソースを消費するため、パフォーマンスを重視するユーザーや開発者を悩ませる原因となる。

何がパフォーマンスに影響するのか

ITmedia マーケティング新着記事

news127.jpg

GAFAの序列変動やSpotify、Zoomなどの動向に注目 「Best Global Brands 2020」
世界のブランド価値評価ランキング。Appleは8年連続1位で前年2位のGoogleは4位に後退しま...

news113.jpg

日本のスマホ決済アプリのインストール数は75%成長 バンキングアプリ利用も急増――Adjust調査
2020年上半期は特に日本において、新型コロナの影響でファイナンスアプリの利用が活発化...

news048.jpg

ニューノーマル初の年末商戦 成功の鍵は「送料無料」と「低価格」、そして……――Criteo予測
コロナ禍の収束が見通せないながらも、人々の消費は少しずつ動き出しています。ホリデー...