gpt4 book ai didi

.net - 如果您坚持使用 .NET 中的标准编码,是否有理由手动调用 GC 或运行终结器?

转载 作者:行者123 更新时间:2023-12-04 22:08:46 26 4
gpt4 key购买 nike

如果您在 .NET 中坚持使用托管代码和标准编码(CLR 不会做任何非常规的事情),是否有任何理由手动调用 GC 或请求在未引用的对象上运行终结器?

我问的原因是我有一个应用程序在工作内存集中增长。我想知道是否打电话

System.GC.Collect();


System.GC.RunFinalizers();

会有所帮助,如果它会强制执行 CLR 通常不会执行的任何操作。

最佳答案

不,它不会有帮助。不要这样做。 CLR 已经以一种很好的方式处理了所有与内存管理相关的事情,并且没有显式调用会做一些它尚未做的事情。

尝试在您的程序中查找内存泄漏:虽然 .NET 语言是内存管理的,但这并不意味着它总是知道您何时不再使用某个对象。例如,作为事件监听器附加到其他对象的对象被认为是由 GC 生成的并且不会被收集。

您可以尝试 SOS 来寻找泄漏。

如果真的没有泄漏,那么您的程序确实需要它拥有的内存。

关于.net - 如果您坚持使用 .NET 中的标准编码,是否有理由手动调用 GC 或运行终结器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2900808/

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