浏览量 55
垃圾回收器帮助你管理应用程序内存的分配和释放,自动内存管理可避免内存泄漏,或者重复释放内存。
1、系统具有较低的物理内存;
2、托管堆上对象占用的内存超过可接收的阈值;
3、调用GC.Collect主动进行垃圾回收。
简单的说,当对象的引用计数为0的时候,CLR会调用GC回收内存;
Generational 分代算法:垃圾回收器会将托管堆分成三代,先遍历第0代中的对象,将没有引用的对象的内存进行回收,未被回收的对象,升级到第1代,此时会如果第0代中内存不够使用或者第1代的内存将满,将会遍历第1代,第0代进行内存回收,同理第1代中未被回收的对象升级成第2代。
GC只能自动管理托管的资源,非托管资源需要开发者自己进行释放,比如文件句柄,数据库连接资源等。
CLR对垃圾回收器做了相应的优化,可应对与不同的场景。
以下是工作站垃圾回收的线程处理和性能注意事项:
以下是服务器垃圾回收的线程处理和性能注意事项:
THREAD_PRIORITY_HIGHEST
优先级运行。