C# 怎样管理 方法中变量的内存回收
先回答你的问题。方法中的变量如果是值类型,在方法执行完会被自动释放,因为是在栈上分配的空间。但是方法中声明的引用类型,比如你所举例子中的List,是在堆上分配的,只能在gc中回收,方法执行后不会被立即回收。理论上你的做法会减少gc对效率的影响,但是这些细微的影响真的对你的程序那么重要吗?定义成成员变量会使程序难以维护,导致多线程问题,整体内存占用增大却久久不能释放。你需要全面仔细的profile你的程序,让你有充分的理由这么做。
■网友
如果你在乎gc的开销,那为什么要用c#?然后是正题:值类型的生命周期是到花括号结束。引用类型的生命周期是不确定值。确切来说是引用计数为0以后的下一次gc循环
■网友
How To: Use CLR ProfilerProfiling the .NET Garbage-Collected Heap
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 长寿花怎么养护?掌握两大方法,乖乖花开“爆盆”,花香四溢!
- 安徽合肥:辅警管理新模式电诈压降显成效
- 两男子由俄向国内走私海参被绥芬河移民管理警察抓获
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- |淮安区国资办推进国有企业 退休人员社会化管理工作
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 防火门|防火门管理不当致顾客受伤 海门一商场被判担一半责