DLR的内存占用量是多少?

时间:2011-03-06 17:20:27

标签: c# memory dynamic c#-4.0 dynamic-language-runtime

我正在考虑限制使用C#的dynamic关键字。我的initial time trials令人惊讶 - 在100,000次迭代中性能不到一秒(可能是由于DLR缓存)。

我无法访问内存分析器,Eric Lippert wrote

  

然后启动DLR [...] DLR   然后启动一个特殊版本   C#编译器......

这是什么内存占用,并且在动态代码被垃圾收集时被卸载了?

1 个答案:

答案 0 :(得分:11)

  

是否在动态代码被垃圾收集时被卸载了?

这个问题预先假定一个不正确的前提;动态生成的代码不是在当前实现中收集的垃圾。它被缓存并且缓存一直存在,直到appdomain被拆除。我们不知道上次何时将调用特定的代码路径。

如果您想知道对虚拟内存,堆内存,专用字节,共享字节等的影响,那么我的建议是您使用内存分析器来回答这些特定问题。你可能会感兴趣的是六种不同的“记忆足迹”,我不知道哪一种与你有关。使用适当的工具来衡量你感兴趣的内容,然后你就会知道。