怎么做买东西的网站福建住房与城乡建设网站
web/
2025/10/1 0:09:05/
文章来源:
怎么做买东西的网站,福建住房与城乡建设网站,手机网站的必要性,赤峰网站优化编程控制垃圾收集器 System.GC类型为应用程序提供了直接控制垃圾收集器的一些方法#xff0c;可以通过GC.MaxGeneration来查询托管堆支持的最大代龄#xff0c;目前为2。 通过下面方法执行垃圾收集器 GC.Collect(int);传递代龄#xff0c;传递0#xff0c;收集0代#xff…编程控制垃圾收集器 System.GC类型为应用程序提供了直接控制垃圾收集器的一些方法可以通过GC.MaxGeneration来查询托管堆支持的最大代龄目前为2。 通过下面方法执行垃圾收集器 GC.Collect(int);传递代龄传递0收集0代传递1收集01代传递2收集0.1.2代 GC.Collect();无参强制对所有代龄的对象执行垃圾收集GC.WaitForPendingFinalizers方法会挂起调用线程直到处理终止化队列的线程清空了该队列并完成每个对象的Finalize方法调用为止。下面代码 GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); 上面代码首先强制执行一次垃圾收集。当第一轮垃圾收集完成后不需要终止化的那些对象内存将被回收。但是终止化对象的内存还没有被回收。在第一次Collect调用返回后一个特殊的、专门用于终止化的线程将采用异步的方式来调用所有终止化对象的Finalize方法。WaitForPendingFinalizers方法将使应用程序处于睡眠状态直到所有的Finalize方法调用完成为止。当WaitForPendingFinalizers方法返回所有的终止化对象将成为真正的可收集垃圾。这时第二次Collect调用将强制执行第二轮垃圾收集所有终止化对象的内存将在这一轮垃圾收集中完全被回收。 通过编程继续了解垃圾收集
namespace ControlGC { class Program { static void Main( string [] args) { Console.WriteLine( Maximum generations: GC.MaxGeneration); // 在托管堆上创建一个新的GenObj对象 Object o new GenObj(); // 刚刚创建代龄为0 Console.WriteLine( Gen GC.GetGeneration(o)); // 0 // 执行垃圾收集器提高对象代龄 GC.Collect(); Console.WriteLine( Gen GC.GetGeneration(o)); // 1 GC.Collect(); Console.WriteLine( Gen GC.GetGeneration(o)); // 2 GC.Collect(); Console.WriteLine( Gen GC.GetGeneration(o)); // 2最大值 o null ; // 销毁对象此时对象的代龄为2 Console.WriteLine( Collect Gen 0 ); GC.Collect( 0 ); // 收集第0代对象其实没有0代对象 GC.WaitForFullGCApproach(); // 不会调用Finalize Console.WriteLine( Collect Gen 0 ); GC.Collect( 1 ); // 收集第0代对象其实没有1代对象 GC.WaitForFullGCApproach(); // 不会调用Finalize Console.WriteLine( Collect Gen 0 ); GC.Collect( 2 ); // 收集第2代对象对象真正被收集 GC.WaitForFullGCApproach(); // 调用Finalize } } class GenObj { ~ GenObj() { Console.WriteLine( In Finalize method ); } } }
执行结果 深刻的了解代龄 大尺寸对象 任何占用内存大于等于85000字节的对象都被认为是大尺寸对象large object。大尺寸对象是从一个特殊的大尺寸对象托管堆中分配的。该托管堆中对象的终止化和内存释放行为与前面描述的小尺寸对象相同。但是大尺寸对象不会被压缩因为在托管堆中移动大尺寸对象会浪费CPU比较多的时间。 大尺寸对象总是被认为是2代的。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84731.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!