被动回收
在大多数情况下,垃圾回收器可以确定执行回收的最佳时间,应让其独立运行。 在某些不常发生的情况下,强制回收可以提高应用程序的性能。 在这些情况下,可使用 Collect 方法强制垃圾回收,以引发垃圾回收。
当应用程序代码中某个确定的点上使用的内存量大量减少时,请使用 Collect 方法。 例如,如果应用程序使用包含若干个控件的复杂对话框,则在对话框关闭时调用 Collect 可能会通过立即回收内存来提高性能。 务必确保应用程序不会过于频繁地引发垃圾回收,否则当垃圾回收器无效率地尝试回收对象时,可能会使性能降低。 Optimized 模式使垃圾回收器可以根据收集是否有效率来确定是否进行回收。
GC 回收模式
可以使用 GC.Collect 方法重载,它使用 GCCollectionMode 值指定强制回收的行为,如下表所述。
成员 |
说明 |
---|---|
使用指定的设置作为正在运行的 .NET Framework 版本的默认垃圾回收配置。 |
|
强制立即执行垃圾回收。 这等效于调用 GC.Collect()。 |
|
使垃圾回收器可以确定当前时间是否是回收对象的最佳时间。 垃圾回收器可能判定收集效率不够高,因此收集不合理,在这种情况下将返回而不回收对象。 |