gpt4 book ai didi

c# - GC.Collect() 和 GC.Collect(GC.MaxGeneration) 有什么区别?

转载 作者:行者123 更新时间:2023-11-30 17:06:02 28 4
gpt4 key购买 nike

我看到了多个建议运行 GC.Collect(GC.MaxGeneration) 的答案。
既然方法GC.Collect()会收集所有存在的分代,那么两者有什么区别吗?

也许如果只有两代而不是三代,GC 将收集两代,而不会尝试收集第三代,这将提高性能。但说真的,这有意义吗?

最佳答案

唯一的区别是 GC.Collect() 将使用 GCCollectionMode.Optimized但是 GC.Collect(GC.MaxGeneration) 将使用 GCCollectionMode.Default(至少在 .NET Framework 4.5 中)。在重载中,您也可以手动指定收集模式。

/// <summary>Specifies the behavior for a forced garbage collection.</summary>
public enum GCCollectionMode
{
/// <summary>The default setting for this enumeration, which is currently <see cref="F:System.GCCollectionMode.Forced" />. </summary>
Default,
/// <summary>Forces the garbage collection to occur immediately.</summary>
Forced,
/// <summary>Allows the garbage collector to determine whether the current time is optimal to reclaim objects. </summary>
Optimized
}

关于c# - GC.Collect() 和 GC.Collect(GC.MaxGeneration) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15876691/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com