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

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

2019年11月19日 10時05分 公開
[Cameron McKenzieTechTarget]

関連キーワード

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の理念を支えている。だがバイトコードから機械語への変換はリソースを消費するため、パフォーマンスを重視するユーザーや開発者を悩ませる原因となる。

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

Copyright © ITmedia, Inc. All Rights Reserved.

From Informa TechTarget

お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。

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

news191.jpg

Omnicomが Interpublic Groupを買収 世界最大級の広告会社が誕生へ
OmnicomがInterpublic Group(IPG)を買収する。これにより、世界最大の広告会社が誕生し...

news110.jpg

インテントデータ×キーエンス出身者のノウハウで実現 ABMを先に進める最先端の営業手法とは?
ユーソナーとGrand Centralは提携し、営業売り上げ拡大のためのBPOパッケージを提供開始...

news061.png

「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2024年12月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...