System.Reflection.Emitを多用してソースコードのコンパイル済みバージョンを出力する必要があるプロジェクトに取り組んでいますが、全体を出力しようとすると速度が低下することに気付きました(一部しか出力していません)テスト用)。つまり、946タイプに対して「TypeBuilder.CreateType()」メソッドを呼び出すには75秒以上かかります。これを、出力するデータの膨大な量に部分的にチョークします。これは、逆コンパイルすると60MBのファイルに拡張される3.01MBのdllです。 ILDasmを使用します。
さて、このデータの残りの発行プロセスは合計で約40秒しかかかりません(そしてそれらの40秒にはかなりのデバッグデータの発行が含まれます)ので、なぜこの唯一の方法にそれほど時間がかかるのか疑問に思います。誰か知っている?そして、今回は減らす方法はありますか?