如何在 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();
}
}
}
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP