最近、これを読んでいました記事。
その記事によると、Java コンパイラ、つまり javac はバイトコードを生成する際に最適化を実行しないそうです。これは本当でしょうか? もしそうなら、冗長性を排除して最適なコードを生成する中間コード ジェネレータとして実装することは可能でしょうか?
ベストアンサー1
javac
最適化はほとんど行われません (行われる場合も)。
重要なのは、JITコンパイラがほとんどの最適化を行うということです。JITコンパイラは多くの情報を持っている場合に最もよく機能しますが、javac
最適化を実行すると一部の情報が失われる可能性があります。javac
ループ展開を実行すると、JITが一般的な方法でそれを実行するのは難しくなります。また、どの最適化が適切であるかについてのより多くの情報を持っています。実はターゲット プラットフォームを認識しているため、機能します。