是否可以停止.NET垃圾回收?

时间:2010-06-19 05:08:20

标签: c# .net garbage-collection

程序员是否有可能以C#编程语言以编程方式启动/停止垃圾收集?例如,用于性能优化等。

4 个答案:

答案 0 :(得分:7)

不是真的。您可以通过GCGC.AddMemoryPressure等方法提供GC.RemoveMemoryPressure提示,但不能完全停止。

此外,垃圾收集不是一个过程密集型。程序员很少担心它。

答案 1 :(得分:6)

同时有可能,GCclass中有方法:

GC.TryStartNoGCRegion(...)GC.EndNoGCRegion()

答案 2 :(得分:5)

一般来说,没有。并且大多数人会认为过早优化会担心垃圾收集,除非你进行一些分析并发现它确实是应用程序性能不佳的原因。

如果您对调整GC的性能(或更有可能调整应用程序以提高其相对于GC的性能)的实质感兴趣,MSDN对于如何做的方式有相当不错的描述它

答案 3 :(得分:4)

不,没有。充其量你可以自己触发垃圾收集,虽然这被认为是非常糟糕的事情,因为它可能会干扰GC使用的内置调度算法。