C#编译过程
1.c#将代码第一次编译成MSIL和元数据,这两个数据同事存在.exe或.dll文件中,这种伪代码是独立于任何CPU的,所以只要有.NetFrameWork的机器就可以运行,增强了c#的可移植性。
2.程序执行时,IL被CLR捕获,CLR激活内部的JIT编译器,将伪代码编译成针对特定CPU的机器语言。
JIT:即时编译,在代码需要运行的时候才将对应的IL编译为本机指令,然后把结果保存到(GAC)用于将来对同一方法的调用(程序运行起来后,同一段代码只需要编译一次)。(AOT即提前编译,可以生成被直接执行的二进制代码,运行速度快、执行性能表现好,但每次执行前都需要提前编译,开发测试效率低。并且不支持dll直接热更,所以才有xlua等il注入的方式热更)
GAC:全局程序集缓存,.NET应用程序在加载的时候,会首先查看全局应用程序集缓存,如果有就直接使用,不用再编译。
编译过程:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2020-03-23 构造函数热更