【发布时间】:2011-06-17 17:17:02
【问题描述】:
就像几乎任何其他大型.NET 应用程序一样,我当前的C# 项目包含许多.net 集合。
有时我从一开始就不知道集合(List/ObservableCollection/Dictionary/等)的大小。
但是很多时候我确实知道它会是什么。
我经常收到OutOfMemoryException,有人告诉我,这不仅是因为进程大小限制,还因为碎片化。
所以我的问题是 - 每次我知道集合的预期大小时设置集合的大小(使用构造函数中的容量参数)有助于我防止至少一些碎片问题吗?
此引用来自msdn:
如果集合的大小可以 估计,指定初始 容量消除了需要 执行一些调整大小 添加元素时的操作 列表。
但是,我仍然不想因为可能不是真正问题的东西而开始更改我的大部分代码。
它有没有帮助你们解决内存不足的问题?
【问题讨论】:
-
您是否使用过内存分析器来查找罪魁祸首?
-
内存分析能否帮助我发现集合调整大小的情况?
-
它将帮助您找到最大和最重要的收藏
标签: c# .net performance collections