zoukankan      html  css  js  c++  java
  • C#堆和栈

    堆与栈都是内存空间的一部分,其中,堆又可以分为托管堆和非托管堆。托管堆和栈由 CLR 管理。

    这里的堆(heap)是托管堆(managed heap)的简称。顾名思义,它由 CLR 进行管理。

    它是在运行程序时,CLR 申请的一块内存空间。它基于进程,属于进程内存空间的一部分。

    当创建新对象时,若该对象是引用类型或者包括引用类型的值类型,就会在 GC 堆上申请空闲的内存空间,CLR 会先计算需要的空间大小。如果堆上已经没有剩余空间了,就触发一次垃圾回收。如果回收之后仍然无法获得足够的剩余空间,则掷出 OutOfMemory 异常。

    GC 堆维护一个叫做 NextObjPtr 的指针,指向 GC 堆的下一个可用地址。为了尽量合理利用空间,GC 堆的内存分配是连续的。当垃圾收集结束之后,由于有些空间被释放,内存可能出现碎片,此时,会进行压缩,将内存重新变回连续状态。

    这里的堆(heap)是托管堆(managed heap)的简称。顾名思义,它由 CLR 进行管理。

    它是在运行程序时,CLR 申请的一块内存空间。它基于进程,属于进程内存空间的一部分。

    当创建新对象时,若该对象是引用类型或者包括引用类型的值类型,就会在 GC 堆上申请空闲的内存空间,CLR 会先计算需要的空间大小。如果堆上已经没有剩余空间了,就触发一次垃圾回收。如果回收之后仍然无法获得足够的剩余空间,则掷出 OutOfMemory 异常。

    GC 堆维护一个叫做 NextObjPtr 的指针,指向 GC 堆的下一个可用地址。为了尽量合理利用空间,GC 堆的内存分配是连续的。当垃圾收集结束之后,由于有些空间被释放,内存可能出现碎片,此时,会进行压缩,将内存重新变回连续状态。

    参考:

    http://c.biancheng.net/view/3070.html

    https://www.cnblogs.com/zd1994/p/4424329.html

  • 相关阅读:
    Icident event 分析
    innodb buffer pool相关特性
    备库Seconds_Behind_Master的计算
    savepoint原理
    layer探框
    解决layui表格和下拉框同时使用时,下拉框被表格遮当问题
    layui switch开关按钮
    formSelects 4.x多选下拉框
    java如何调用php接口,并获取值
    layui时间范围选择器
  • 原文地址:https://www.cnblogs.com/zwh1993/p/11248838.html
Copyright © 2011-2022 走看看