0

在我的程序中,我使用了一个HashSet我只会将对象放入其中的对象,我将never再次取出它。条目是类,集合中可能有超过 100,000 个条目。内存使用在这里不是问题,但垃圾收集器是。我 45% 的 cpu 用于垃圾收集,我怀疑这是因为集合很大。

有没有办法让垃圾收集器not检查一个对象?我从不想删除集合中的对象。

4

1 回答 1

3

.NET 使用分代垃圾收集,考虑到您的场景,它最终会将所有对象移动到很少被收集的第 2 代。因此,除非这些对象被非常频繁地替换,否则 GC 应该不是问题。

如果您 100% 确定 GC 占用 45% CPU,我会使用内存分析器来查看到底收集了什么

于 2013-11-09T12:37:22.333 回答