在 .NET 中防止短时间内垃圾收集
在处理大数据的高性能应用程序中,垃圾收集 (GC) 可以引入关键时期的延误。本文讨论了暂时暂停 GC 并将其影响降至最低的策略。
整个程序的 GC 可以暂停吗?
是的,.NET 4.6 引入了 GC.TryStartNoGCRegion 和 GC.EndNoGCRegion 方法。这些允许您创建一个不运行 GC 的“无 GC 区域”。
示例:
using System; using System.Runtime.CompilerServices; public class NoGCRegion { public static void RunNoGC(Action action) { GC.TryStartNoGCRegion(); action(); GC.EndNoGCRegion(); } }
使用 GC.Collect()强制垃圾收集
是的,您可以使用强制垃圾收集GC.Collect(),但不保证GC-free期的持续时间。 GC 将运行,直到收集完所有符合条件的对象。
最小化垃圾收集
为了减少 GC 的需要:
以上是我可以暂时暂停 .NET 中高性能应用程序的垃圾收集吗?的详细内容。更多信息请关注PHP中文网其他相关文章!