5

.s指示を出すことができる場所を本当に気にする必要がありますか? それとも、サイズだけに影響しますが、実際のパフォーマンスは同じになりますか?

生成された dll は、 AOTプラットフォームでも使用されます。結果のAOT-ed dllは、ILの.s有無にかかわらず同じになりますか?

つまり、、br.sなどldloca.s..

4

1 に答える 1

1

場合によります。.s(および のようなリテラルを含むオペコード)の主な目的はldc.i4.1、コードのサイズを縮小することだけであり、メソッドのサイズを縮小することの利点は、呼び出し元の CIL からネイティブ コードを生成するときにメソッドをインライン化できるようにすることです。メソッド (x86 ジッタの制限は IL の 32 バイトです)。したがって、この場合、短い命令をインライン候補メソッドで使用すると、アプリケーションのパフォーマンスを向上させることができます。

それ以外の場合、実行されるのは CIL ではないため、短いオペコードと通常のオペコードの両方によって生成されるマシン コードは、同じ (可能な場合は最適化された) ネイティブ コードである必要があります。

于 2016-02-08T20:39:10.243 に答える