zoukankan      html  css  js  c++  java
  • .net垃圾回收机制

     static void Main(string[] args)
            {
                Console.WriteLine(
    "当前托管堆上分配了{0}K字节内存空间。", (GC.GetTotalMemory(false/ 1024).ToString());
                Console.WriteLine(
    "输入系统最大支持{0}代。\n", (GC.MaxGeneration + 1).ToString());
                var obj 
    = new { num = 1, txt = "abc" };
                Console.WriteLine(
    "obj创建完成,所引用对象当前为第{0}代。\n", GC.GetGeneration(obj).ToString());
                
    //对第0代进行强制回收,所有对象终结前挂起当前进程
                GC.Collect(0);
                GC.WaitForPendingFinalizers();
                Console.WriteLine(
    "第{0}代强制回收完成。");
                getmsg(obj);
                GC.Collect();
                GC.WaitForPendingFinalizers();
                Console.WriteLine(
    "所有代强制回收完成。");
                getmsg(obj);
                obj 
    = new { num = 1, txt = "abc" };
                Console.WriteLine(
    "\nobj对象被赋予了同匿名类型的新实例。");
                getmsg(obj);
                
    for (int i = 0; i < 3; i++)
                {
                    Console.WriteLine(
    "第{0}代已经被收回了{1}次。", i, GC.CollectionCount(i));
                }

                Console.ReadKey();
            }
            
    static void getmsg(object o)
            {
                
    string objgen = GC.GetGeneration(o).ToString();
                Console.WriteLine(
    "obj所引用对象当前为第{0}代。\n", objgen);
            }
  • 相关阅读:
    中国移动全球通寻宝第四期攻略
    推荐一个奥运门票交流的网站!
    国务院发出通知明确2008年部分节假日放假安排
    [转]开发人员如何谈加薪,抛砖引玉,欢迎大家各抒己见。
    中级.NET开发人员应该知道些什么?
    linux系统管理 系统安全及应用
    Linux10 进程 定时任务 僵尸进程
    shell脚本练习
    虚拟机和liunx系统的装机
    Linux三剑客awk的应用对比案例详解
  • 原文地址:https://www.cnblogs.com/wpf123/p/2052927.html
Copyright © 2011-2022 走看看