在我的程序中,我使用HashSet
,我只会将对象放入其中,我将never
再次出来。条目是类,可以在集合中获得超过100,000个条目。内存使用在这里不是问题,但垃圾收集器是。我的cpu的45%用于垃圾收集,我怀疑这是因为大的设置。
有没有办法让垃圾收集器not
检查一个对象?我从不想删除集合中的对象。
答案 0 :(得分:3)
.NET使用分代垃圾收集并考虑您的场景,它最终会将所有对象移动到第2代,这很少被收集。 因此,除非这些对象被频繁更换,否则GC不应成为问题。
如果你100%确定GC吃了45%的CPU,我会去找一个内存分析器,看看到底收集到了什么