C#编译过程

1.c#将代码第一次编译成MSIL和元数据,这两个数据同事存在.exe或.dll文件中,这种伪代码是独立于任何CPU的,所以只要有.NetFrameWork的机器就可以运行,增强了c#的可移植性。

2.程序执行时,IL被CLR捕获,CLR激活内部的JIT编译器,将伪代码编译成针对特定CPU的机器语言。

JIT:即时编译,在代码需要运行的时候才将对应的IL编译为本机指令,然后把结果保存到(GAC)用于将来对同一方法的调用(程序运行起来后,同一段代码只需要编译一次)。(AOT即提前编译,可以生成被直接执行的二进制代码,运行速度快、执行性能表现好,但每次执行前都需要提前编译,开发测试效率低。并且不支持dll直接热更,所以才有xlua等il注入的方式热更)

GAC:全局程序集缓存,.NET应用程序在加载的时候,会首先查看全局应用程序集缓存,如果有就直接使用,不用再编译。

编译过程:

 

posted @   mc宇少  阅读(301)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2020-03-23 构造函数热更
点击右上角即可分享
微信分享提示