我知道GC有3(0,1,2)代,但我想知道GC如何决定变量的生成?
我认为所有变量都进入第0代,经过一段时间后转移到第1代和第2代.对于GC来说,决定生成是否重要?
PROGRAM1:
private static void Main(string[] args)
{
int a = 0;
string name = "Test";
var byteArray = new byte[10];
byteArray[4] = 4;
Console.WriteLine($"Generation of array {GC.GetGeneration(byteArray)}");
Console.WriteLine($"Generation of local int variable {GC.GetGeneration(a)}");
Console.WriteLine($"Generation of local string variable {GC.GetGeneration(name)}");
}
Run Code Online (Sandbox Code Playgroud)
结果
Generation of array 0
Generation of local int variable 0
Generation of local string variable 0
Run Code Online (Sandbox Code Playgroud)
程序2:
private static void Main(string[] args)
{
int a = 0;
string name = "Test";
var byteArray = new byte[100000000];
byteArray[4] …Run Code Online (Sandbox Code Playgroud)