gpt4 book ai didi

c# - 我如何判断 .Net 3.5 垃圾收集器是否已运行?

转载 作者:行者123 更新时间:2023-11-30 18:52:56 24 4
gpt4 key购买 nike

我有一个创建节点树的应用程序,然后抛出它们并生成新树。

应用程序在启动时分配大约 20 MB。但是我多次尝试加载一个大的节点文件,分配的内存超过了 700 MB。我想我会偶尔看到垃圾收集器释放内存。

我所在的机器有 12 GB 的 RAM,所以可能只是分配这么“小”的内存量对 GC 来说无关紧要。

我发现了很多关于 GC 工作原理的有用信息,最好不要告诉它该做什么。但我想验证它确实在做任何事情,并且我没有在代码中做错什么阻止我的对象被清理。

最佳答案

GC 通常在以下任一情况发生时运行:

  • 您调用 GC.Collect(您不应该这样做)
  • Gen0 的预算用尽

还有一些其他场景,但我现在将跳过这些场景。

您没有告诉我们您是如何测量内存使用量的,但是如果您正在查看进程本身的内存使用量(例如通过任务管理器),那么您可能看不到您期望的数字。请记住,.NET 运行时本质上有自己的内存管理器,代表您管理的应用程序处理内存使用情况。运行时试图对此保持聪明,因此它不会一直为操作系统分配和释放内存(那些是昂贵的操作)。 This question也可能相关。

如果您担心内存泄漏,请查看 some of the answers here .

关于c# - 我如何判断 .Net 3.5 垃圾收集器是否已运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9508482/

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