如何在 C# 中强制执行垃圾回收?
是的,通过调用 Collect() 方法可以强制 C# 中的垃圾回收器运行
这不算什么好习惯,因为它可能会造成性能开销。Collect() 会强制对所有世代进行立即垃圾回收。
Collect(Int32)强制从第 0 世代进行垃圾回收到指定的某个世代。
示例
using System; class MyGCCollectClass{ private const int maxGarbage = 1000; static void Main(){ // Put some objects in memory. MyGCCollectClass.MakeSomeGarbage(); Console.WriteLine("Memory used before collection: {0:N0}", GC.GetTotalMemory(false)); // Collect all generations of memory. GC.Collect(); Console.WriteLine("Memory used after full collection: {0:N0}", GC.GetTotalMemory(true)); } static void MakeSomeGarbage(){ Version vt; // Create objects and release them to fill up memory with unused objects. for(int i = 0; i < maxGarbage; i++){ vt = new Version(); } } }
广告