3
コンパイラがCILに出力すると、CILが最適化されているのですか?言語がボーナスデータ情報をデバッグモードで挿入しないとすれば、JITがすべての最適化を完全に行うかどうかは疑問でした。CILは最適化されていますか?または、JITtedバイナリだけ?
コンパイラがCILに出力すると、CILが最適化されているのですか?言語がボーナスデータ情報をデバッグモードで挿入しないとすれば、JITがすべての最適化を完全に行うかどうかは疑問でした。CILは最適化されていますか?または、JITtedバイナリだけ?
両方。リリースモードでビルドする場合は、使用しているコンパイラによってCILに移行する前にコードに最適化が適用されます。 JITterにも最適化されています。
コンパイラによって通常行われる最適化の例は、定数フォールディングです。
通常、JITレベルで行われる最適化の例は、ループアンローリングです。
これは間違っているようです。コンパイラはJITerが何もできなかったことを何にしますか?コンパイラ最適化の例を教えてください。 –
@ acidzombie24:JITterが何かできることは、それが意味するものではないという理由だけです。いくつかの最適化は、単にJITがユーザを中断しないように非常に高速でなければならないため、単に試みません。典型的には、JITterによってではなくフロントエンドの内部で行われる最適化の例は、一定のフォールディングである。 –
@ acidzombie24、なぜJITterはすべての作業を行うべきですか?コンパイラは、未使用のメソッド呼び出し、インラインコードなどを取り除くことができます。 – bzlm