Bra*_*rad 1 .net memory-management
这些方法中的任何一个是使用比另一个更多的内存还是在GC上使用更大的负载?
选项1
LargeObject GetObject()
{
return new LargeObject();
}
Run Code Online (Sandbox Code Playgroud)
选项#2
LargeObject GetObject()
{
LargeObject result = new LargeObject();
return result;
}
Run Code Online (Sandbox Code Playgroud)
两种方法的堆内存使用量相等.在第二种情况下创建局部变量的开销微乎其微,但它不应该打扰你.变量将存储在堆栈中,不会对GC造成任何额外压力.此附加变量也可能由编译器或JIT优化(因此它可能不存在于CLR实际执行的代码中).