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);
            }
  • 相关阅读:
    9 *9 乘法表
    总结day04 ---- 列表的切片,增删改查,以及,相关方法, 元祖的使用方法
    三级菜单 -----待学习,待强化
    day04 --class --homework
    购物车项目 复杂版本.待简化
    python 学习资料 常用
    总结day3 ---- 进制转换,字符串切片,字符串常用方法.,for 循环,
    day03 --class --homework
    总结day2 ---- while循环的简单使用, 格式化输出.运算符.以及编码的应用
    Uva 10054 欧拉回路 打印路径
  • 原文地址:https://www.cnblogs.com/wpf123/p/2052927.html
Copyright © 2011-2022 走看看