5
我正在考虑让有限的使用C#的关键字dynamic
的。我的initial time trials令人吃惊 - 在100,000次迭代中性能降低不到1秒(可能是由于DLR缓存)。DLR的内存占用量是多少?
我没有访问内存设置,虽然和Eric Lippert wrote:
然后,它开始了DLR [...]的DLR 然后启动的 C#的一个特别版本编译器...
这是什么内存占用,并且它被动态代码垃圾收集时卸载?
我正在考虑让有限的使用C#的关键字dynamic
的。我的initial time trials令人吃惊 - 在100,000次迭代中性能降低不到1秒(可能是由于DLR缓存)。DLR的内存占用量是多少?
我没有访问内存设置,虽然和Eric Lippert wrote:
然后,它开始了DLR [...]的DLR 然后启动的 C#的一个特别版本编译器...
这是什么内存占用,并且它被动态代码垃圾收集时卸载?
在动态代码垃圾收集时,它卸载?
问题预设了一个不正确的前提;动态生成的代码不是在当前实现中收集垃圾。它被缓存,缓存直到应用程序被拆除。当最后一次特定的代码路径将被称为我们不知道。
如果你想知道对虚拟内存,堆内存,私有字节,共享字节等的影响,那么我建议你使用内存分析器来回答这些特定的问题。你可能会感兴趣的是六种不同的“记忆足迹”,我不知道哪一个与你有关。使用适当的工具来衡量你感兴趣的事情,然后你就会知道。
我个人不会担心在编译成像C#这样的字节码的高级垃圾收集语言中使用DLR的脚印。 – dtech 2011-03-06 17:23:02
可以访问分析器。缓存是DLR的关键,你的缓存状态看起来不像我的。 – 2011-03-06 18:12:37