gpt4 book ai didi

c# - GC.收集()

转载 作者:IT王子 更新时间:2023-10-29 04:45:50 28 4
gpt4 key购买 nike

好的,我已经阅读了几个关于它的主题,但现在就开始吧。假设我有一个应用程序,基本上我会时不时地点击一个按钮,几分钟内会发生很多事情,然后它可能会再闲置一个小时,或者可能只是 1 分钟。难道不是在整个结束之后调用 GC.Collect 的好情况吗?我的意思是,我确实知道在那一刻我不会使用我的应用程序,而且 GC 无法猜测。

最佳答案

我看到有几个人对不建议调用 GC.Collect 变得极端。

GC.Collect 的存在是有原因的,这是我关于何时以及为何调用 GC.Collect 的建议。

  1. 一般来说,不用担心调用它,GC 会很好地调整自己,并会做正确的事情。

  2. 有时,您最终会遇到这样的情况,您确定这是调用它的正确时间,您上面描述的情况正是调用它的正确时间,实际上是 Asp.Net 调用 GC。在与您描述的相似的特定点收集。

  3. GC 调用 GC.Collect 很聪明,如果你调用了 GC.Collect,GC 可以覆盖你的决定并且仍然不收集(你必须在调用 GC.Collect 时设置一个标志来选择这种行为),这是调用 GC.Collect 的推荐方式,因为您仍然让 GC 决定现在是否是收集的好时机。

  4. 不要接受我的建议是调用 GC.Collect 的一般声明,你应该始终避免调用它,除非你真的确定你需要调用它,像你描述的那样的情况正是 GC.Collect 的原因。收集就在那里。

  5. 调用它的好处是可以快速释放垃圾,一般情况下您会关心这种情况

    1. 你处于内存不足的情况并且想要急于收集,如果你处于内存不足的情况,GC 无论如何都会很积极,如果机器上的内存压力很高,它会自动启动
    2. 如果你想避免陷入内存不足的情况并且你想急切地收集。

希望这对您有所帮助。
谢谢

关于c# - GC.收集(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1149197/

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