zoukankan      html  css  js  c++  java
  • 托管代码

    记录什么是托管代码?学习过程。

    托管代码

    C#,就是其中一种托管代码。托管代码的执行过程可以交由运行时管理,在.Net里,这种运行时称为“公共语言运行时”(Common Language RunTime,CLR)。

    托管代码先经过编译器编译成“中间语言”代码(Intermediate Language,IL),然后CLR启动“实时”(just-in-time,JIT),将IL编译成机器代码,并同时提供自动内存管理、安全边界、类型安全等服务。

    CLR允许托管代码越界,C# 语言可让你利用所谓的不安全上下文(指定执行过程不由 CLR 管理的代码片段),在代码中直接使用非托管构造,例如指针。

     自动内存管理

    CLR有一个垃圾回收器,自动分配和释放内存。

    CLR为应用程序进程建立一个“连续的地址空间”即“托管堆”,应用程序每创建一个引用类型对象时,垃圾回收器就会按顺序的在托管堆上取地址空间,如果该地址空间可用,则在该地址空间内为新建的对象分配内存,否则跳到下一个地址空间。

    垃圾回收器通过访问运行时维护“对象活动根”列表,得知哪些对象没有跟即没有访问的入口,然后释放这些对象的占用的内存。

    在回收大量无法访问的对象时,会采取压缩内存的方法。但是,为了避免移动内存中的大型对象,不会压缩此内存。

    待阅读 https://docs.microsoft.com/zh-cn/dotnet/standard/automatic-memory-management

  • 相关阅读:
    使用ConfigFilter
    读取特定文件,替换第一行内容
    sqlserver,oracle,mysql等的driver驱动,url怎么写
    Excel 数字处理
    ResultMap详解
    正则表达式
    Tomasulo algorithm
    scoreboarding
    data hazard in CPU pipeline
    差分绕线间距对阻抗的影响
  • 原文地址:https://www.cnblogs.com/bibi-feiniaoyuan/p/host.html
Copyright © 2011-2022 走看看