短命的物体

Ton*_*ony 10 .net c# garbage-collection memory-management

生成大量临时对象(即中间结果)的开销是什么"年轻"(在垃圾收集间隔期间从未升级到下一代)?我假设"新"操作非常便宜,因为它实际上只是一个指针增量.但是,处理这种临时"垃圾"的隐性成本是多少?

Jon*_*eet 13

不是很多 - 垃圾收集器对于gen0非常快.它也会调整自己,调整gen0的大小,具体取决于它每次运行时收集的数量.(如果它设法收集很多,它会减少gen0的大小,以便下次收集,反之亦然.)

最终的测试是你的应用程序如何执行.Perfmon在这里非常方便,显示了在GC上花了多少时间,每一代有多少集合等等.

  • 它几乎肯定已经安装在你的Windows机器上了.点击Windows-R,然后输入"perfmon".否则找到它将取决于您使用的Windows版本. (2认同)