我有一个由元素组成的缓存,每个元素都包含两个并发字典,我认为它们可能是我应用程序中内存泄漏的原因。我经常从这本词典中添加和删除内容。有人可以向我描述并发字典的内存分配如何工作以及我的最佳实践是什么吗?提前致谢!
最佳答案
任何 .NET 集合的 remove 方法都不会释放内存,它只会从集合中删除引用。如果没有其他对象引用这些对象,垃圾收集器最终会清理它们。
引用被挂起的一个常见原因是忘记取消事件处理程序。
MemProfiler、dotTrace 和 ANTS 内存分析器等多个 .NET 内存分析器都有试用版。
正如@Scott Chamberlain 指出的那样,System.Runtime.Caching Namespace
包含允许您在 NET Framework 应用程序中实现缓存的类型。
关于c# - .Net 4.5.1 ConcurrentDictionary TryRemove() 方法是否释放分配的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20513433/