0

ここに簡単な質問があります。

次のようなループ メソッドを展開したいとしましょう。

public int DoSum1(int n)
{
    int result = 0;
    for(int i = 1;i <= n; i++)
    {
        result += i;
    }
    return result;
}

単純な追加のみを実行するメソッドに:

public int DoSum2( )
{
    return 1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20;
}

[ http://etutorials.org/Programming/Programming+C.Sharp/Part+III+The+CLR+and+the+.NET+Framework/Chapter+18.+Attributes+and+Reflection/18.3+Reflection+Emit/ ][1]

論理的には、DoSum2ある時点で IL で作成するコードが必要になります。この IL 生成コードでは、最適化されていない方法と同じ反復回数で実際のループを実行します。

それを生成するために必要なコードが実行に同様の時間を使用する場合、超高速の動的メソッドを作成するポイントは何ですか???

同様のケースでEmitを使用する価値がある場合、例を挙げることができますか?

4

1 に答える 1