gpt4 book ai didi

c# - 强制 .NET GC 压缩或整理第 2 代堆?

转载 作者:太空宇宙 更新时间:2023-11-03 15:15:22 26 4
gpt4 key购买 nike

我们在 .NET Framework 中用 C# 编写了一个 Windows 服务,几个小时后我们注意到第 2 代堆的大小异常增长。这个空间的大部分是空闲的,dotMemory Profiler 向我们展示了我们在这一代上有大约 90% 的碎片。我如何强制执行 .NET GC 来压缩此空间?这意味着 GC 可以释放此空间,但无法压缩它以供进一步使用。

最佳答案

因为第0,1,2代会被GC自己压缩和删除,

猜测对象分配在大对象堆上(LOH,对象大小 >= 85K)

所以,你可以试试LargeObjectHeapCompactionMode,它可以压缩loh

GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();

引用:MSDN

关于c# - 强制 .NET GC 压缩或整理第 2 代堆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39228460/

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