C# System.Reflection.Emit中类型创建缓慢
我正在从事一个需要大量使用System.Reflection.Emit来发布编译版本的源代码的项目,但是,当我发布整个代码时,我注意到了一个缓慢的过程(我只是为了测试而发布了部分代码)。也就是说,为946种类型调用“TypeBuilder.CreateType()”方法需要75秒以上的时间,我将部分归因于我正在发送的数据量,这是一个3.01mb的dll,在使用ILDasm反编译时会扩展为60mb的文件C# System.Reflection.Emit中类型创建缓慢,c#,.net,.net-2.0,system.reflection,C#,.net,.net 2.0,System.reflection,我正在从事一个需要大量使用System.Reflection.Emit来发布编译版本的源代码的项目,但是,当我发布整个代码时,我注意到了一个缓慢的过程(我只是为了测试而发布了部分代码)。也就是说,为946种类型调用“TypeBuilder.CreateType()”方法需要75秒以上的时间,我将部分归因于我正在发送的数据量,这是一个3.01mb的dll,在使用ILDasm反编译时会扩展为60mb的文件 现在,这个数据的其余发送过程总共只需要大约40秒(这40秒包括发送相当多的调试数据),所以我想
现在,这个数据的其余发送过程总共只需要大约40秒(这40秒包括发送相当多的调试数据),所以我想知道为什么这个单独的方法需要这么多时间。有人知道吗?这次有什么方法可以减少吗?如果您使用的是2.0框架,那么有一个错误,在
CreateType
中不必要地使用了O(n^2)算法,导致性能低下。修补程序:啊,这就是为什么,我使用的是2.0框架。(不要问为什么:P)很高兴知道这是极少数真正体验低性能的计算机之一。很可能你正在使用2.0框架,有一个错误,在CreateType
中不必要地使用了O(n^2)算法,导致性能差。修补程序:啊,这就是为什么,我使用的是2.0框架。(不要问为什么:P)很高兴知道这是为数不多的能够真正体验低性能的计算机之一。