gpt4 book ai didi

.net - 垃圾收集不会减少当前的内存使用量 - 在 Release模式下。为什么?

转载 作者:行者123 更新时间:2023-12-03 18:08:05 24 4
gpt4 key购买 nike

我构建了一个快速程序,它需要遍历一个巨大的日志文件(几百万条记录)并从内部找到各种零碎的东西。由于数据量如此之大,我一直好奇地查看我的 Windows 任务管理器性能选项卡,看看使用了多少 CPU 和内存。

程序成功获得我的结果后,CPU 使用率明显下降。但是在看到我的内存使用量在执行过程中缓慢上升到几 GB 之后,它保持不变。

我试图在我的函数结束时调用 GC.Collect(),尝试将事情设置为 null,尝试在 Release 模式下运行程序(我听说 GC.Collect() 可能无法像我希望的那样在调试中工作模式)。

如果我关闭程序,内存使用量会立即下降,但我不明白为什么我不能在应用程序生命周期内清理我的应用程序。归根结底,这是一个一次性应用程序,但我只是想知道我错过了什么,即是什么保留了所有这些内存。

想法?

最佳答案

调用 GC.Collect() 只是收集垃圾的请求,而不是命令,因此 CLR 可能会选择忽略该请求(如果它认为合适)。

例如,如果有大量垃圾在收集时会导致明显的延迟,但仍有可用内存为后续分配提供服务,那么 GC 可能会选择忽略您的请求。

关于.net - 垃圾收集不会减少当前的内存使用量 - 在 Release模式下。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/888280/

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