我正在开发一个需要大量使用 System.Reflection.Emit 来发出源代码的编译版本的项目,但是,当我发出整个东西时,我注意到速度很慢(我只发出了一部分用于测试)。也就是说,为 946 种类型调用“TypeBuilder.CreateType()”方法需要超过 75 秒,我会将其部分归结为我发出的大量数据,它是一个 3.01mb 的 dll,在反编译时会扩展为一个 60mb 的文件与 ILDasm。
现在,这个数据的其余发射过程总共只需要大约 40 秒,(这 40 秒包括发射相当多的调试数据)所以我想知道为什么这个单独的方法需要这么多时间。有人知道吗?有什么方法可以减少这个时间吗?