温故而知新

CIL和JIT

1.在.NET中,当完成代码进行编译后,并不是编译成本地机器能够运行的代码,而是将其编译成通用的中间语言代码,即我们常说的IL代码,他是独立于操作系统和CPU之外的。

2.当CIL代码完成编译后他并不能直接在本地机器上运行的,他需要使用JIT再次对IL代码进行一次编译成适用于本地机器的代码。JIT是需要运行代码时执行的,JIT也被称作为即时编译器

程序集

在程序进行编译时,会把所有的CIL代码存储在一个程序集中,程序集中包含了可以执行的应用程序文件(这些文件可以直接在 Wmdows上运行,不需要其他程序,其扩展名是.exe)和 其他应用程序使用的库。

托管代码

在将代码编译为 CIL,再用 ΠT编译器将它编译为本机代码后,CLR的任务还没有全部完成, 还需要管理正在执行的用,NET FmmcwOrk编 写的代码(这个执行代码的阶段通常称为运行时(公共语言进行时),在应用程序中,代码会将内存,线程,或者一些安全性的低级操作系统操作交由CLR进行管理,而不需要程序员手动去进行管理,这就是托管代码。

垃圾回收

垃圾回收是托管代码的一个关于对内存操作的功能,当程序在运行时,垃圾回收会自动将没有再引用的内存完全释放掉。.NET垃圾回收会定期检查计算机内存,从中删除不再需要的内容。它不设置时间帧,可能一秒 钟内会进行上千次的检查,也可能几秒钟才检查一次,或者随时进行检查,但一定会进行检查。

猜你喜欢

转载自www.cnblogs.com/homehym/p/9049921.html