![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
Java初心者です。Java言語で開発されたソースプログラムは、コンパイルするとバイトコード(中間言語)に変換されるので、特定の機種やOSに依存しないという大きなメリットがあるそうですが、半面、実行時に、バイトコードをそのコンピュータ固有の形式(マシン語)に変換しなおしてから実行することになるので、一般にはその余分な一ステップの分だけ実行速度が遅くなると言われています。ここで、自分がJava言語で開発したプログラムは自分のマシンでしか使わないとした場合、自分のマシンの仕様(OSの種類、32ビットか64ビットかなど)は予めわかっているので、実行形式プログラムを予めバイトコードではなくマシン語にまで変換してしまうということはできないのでしょうか? これができれば、実行時の余分な変換ステップがなくなるので、その分速くなると思うのですが。逆に言うと、とにかく実行速度最優先というプログラム(例えば、1ミリ秒速いかどうかを争う場合)を開発する場合は、JavaではなくC++など他のコンパイル言語を使って開発すべきなのでしょうか? また、既にJavaで開発されたプログラムがある場合などは、C++などの他の言語で書き直すべきなのでしょうか? 最も実行速度が速くなるコンパイル言語は何でしょうか? お詳しい方、ご教示願います。
No.1ベストアンサー
- 回答日時:
まあまじめな話としてセマンティックスを維持する限り Java よりも C の方がどうしても早くなりやすいんだけどね. あと, 「最も実行速度が速くなる」というのは言語の問題だろうかって疑問もある. たとえ C でもくそなライブラリを使うと遅くなるし, Java をベースにしても死ぬほど頑張ったライブラリを (JNI などを通じて) 使えば高速にできるはず.
Tacosan様、ご教示、ありがとうございました。GCJを使えば、Javaソースコードを直接ネイティブのマシン語にコンパイルできるんですね。勉強になりました。Java入門の解説サイトでは、GCJとかに触れているものは、私の見た範囲ではなかったです。今ちょっと調べてみたら、Eclipse上からでもGCJを使う方法があるとか書いているサイトもありますね。何はともあれ、これからいろいろ調べて試行錯誤してみます。
それと、ライブラリの品質も実行速度に大きく影響するんですね。科学・統計計算ライブラリなども、無料のものではなく高価なものを使うと、計算結果が同じでも、実行速度はかなり違うんでしょうね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 参考にいろいろとc言語、c++言語プログラミングでレジストリーを操作したいのですが、無料配布のc++ 3 2022/12/22 01:49
- 計算機科学 これは迷路を解くというよりも、いかに速く最速で走り切れる経路を見出せるかや、マシン性能、プログラミン 3 2023/07/17 16:27
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- その他(プログラミング・Web制作) プログラミング 処理速度 1 2022/11/25 11:05
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
split関数で区切り文字がない場合
-
Eclipse(JAVA)のデバッグで他...
-
jarsigner 署名確認について
-
JAVAにのeclipseに関する質問で...
-
Javaで年月の取得(YYYYMM形式で)
-
JAVAの質問です。 ( String arg...
-
html上で、バッチやexeファイル...
-
Eclipseで、プロジェクト名のと...
-
マイクラjavaでForgeを入れたい...
-
vs codeはオフラインでも使用で...
-
ResourceBundleクラスの使い方
-
この <windows.h> はどこに在る...
-
Javaのコンパイル結果が表示さ...
-
.jarファイルの中身って書き換...
-
Javaをインストールしたんです...
-
Hot code replace failed ?
-
WINDOWS上でC言語からGSLの機能...
-
BUFFALO WebAccessに繋がらない...
-
servletでHTTPステータス404エ...
-
javaFXをEclipseで動かしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
split関数で区切り文字がない場合
-
Javascriptの値をJava(JSP)へ渡...
-
Eclipse(JAVA)のデバッグで他...
-
「ワークスペースをビルド中」...
-
JAVAにのeclipseに関する質問で...
-
eclipseでスタックサイズを変更...
-
jasper.exceptionとは?
-
Javaで年月の取得(YYYYMM形式で)
-
コミット前の更新データをチェ...
-
eclipseのjavaを実行できない
-
Javascriptのパーミッション
-
Worksheet_Changeが動かない
-
Eclipse 実行→Javaアプリケー...
-
eclipseで「サーバーで実行」表...
-
javascriptで、style undefined...
-
エクリプスで実行時、最新クラ...
-
環境変数設定で
-
Struts2でアプリが実行できません
-
Eclipseで実行>Javaアプリケー...
-
Spyder上のPythonでinputが実行...
おすすめ情報