zoukankan      html  css  js  c++  java
  • C#中应用程序的垃圾回收器管理和内存的分配与释放

    .NET Framework的垃圾回收器管理和内存分配与释放.
    当在应用程序中new出新对象的时候,运行库就会在托管堆中为其分分配一定的内存空间,只要托管堆中有存储空间就会一直分配下去,但是内存是有一定容量的,这@"G:\MyDemo就需要垃圾回收器对内存中的对象进行管理.
         new出的新对象进行分配空间的过程:要先分析实例化字段所需空间,对象所需空间包括两部分,同步块索引和类型对象指针;分配物理内存,新对象指针指向下一个可用内存区域.
    垃圾回收标记:对在线程堆栈中有指针的对象进行标记,释放那些没有标记的对象,调整存在对象的位置.
    垃圾回收过程:微软引进一种机制进行垃圾回收管理,0代分配256K ,1代分配2M,2代分配10M.首先一直在托管堆中的0代添加对象例如当添加到五个的时候0代空间用完,则触发0代回收机制,对其中无标记的对象进行释放,然后将0代剩下的对象放入1代中,将将要添加的对象存入0,继续往0代添加对象当0代空间再次用完时,就又触发0代垃圾回收机制,将无标记的对象释放,再将其余对象添加到1,0代再向1代添加而此时1代也无存储空间,则触发1代垃圾回收,先将1代中无标记的对象释放,然后再将1代中剩余的对象添加到2代中,将要0代的对象添加到1代中,继续往0代添加对象如此往返循环.
  • 相关阅读:
    Linux进程管理与任务计划
    Linux磁盘存储和文件系统
    Oracle Net
    Oracle常用命令
    Ansible之playbook,yaml文件详解
    ansible配置文件详解
    linux学习笔记12-lap+mysql主从+proxy
    Linux 学习笔记11-lamp+redis主从
    Linux学习笔记10-kickstart批量安装centos7
    Linux学习笔记9-ftp服务器
  • 原文地址:https://www.cnblogs.com/nyzhai/p/2965854.html
Copyright © 2011-2022 走看看