我试图减少我的应用程序使用的内存量。在我的应用程序中,我使用System.Reflection.Emit.EnumBuilder根据运行时收到的信息动态创建枚举。我只使用EnumBuilder创建一个单独的枚举,此后,我不再使用它了。使用CLRProfiler时,我注意到EnumBuilders从未被破坏。我的应用程序在运行时可以进行数千个枚举,因此这些EnumBuilder所使用的内存量可以累加起来。 EnumBuilder没有定义Dispose方法,因此我无法以这种方式销毁它。是否有可能以某种方式从内存中删除剩余的EnumBuilder?

最佳答案

我也注意到了。这是ModuleBuilder中的“泄漏”,它依赖于IIRC的字节和字符串。

您可以在装有SOS的WinDbg中查看,以获得更好的内存信息。

关于c# - 创建枚举后销毁EnumBuilder?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/667599/

10-09 02:08