我正在考虑限制使用C#的dynamic
关键字。我的initial time trials令人惊讶 - 在100,000次迭代中性能不到一秒(可能是由于DLR缓存)。
我无法访问内存分析器,Eric Lippert wrote:
然后启动DLR [...] DLR 然后启动一个特殊版本 C#编译器......
这是什么内存占用,并且在动态代码被垃圾收集时被卸载了?
答案 0 :(得分:11)
是否在动态代码被垃圾收集时被卸载了?
这个问题预先假定一个不正确的前提;动态生成的代码不是在当前实现中收集的垃圾。它被缓存并且缓存一直存在,直到appdomain被拆除。我们不知道上次何时将调用特定的代码路径。
如果您想知道对虚拟内存,堆内存,专用字节,共享字节等的影响,那么我的建议是您使用内存分析器来回答这些特定问题。你可能会感兴趣的是六种不同的“记忆足迹”,我不知道哪一种与你有关。使用适当的工具来衡量你感兴趣的内容,然后你就会知道。