CLR via C#

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了CLR via C#脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

CLR是其平台上的语言到达机器上的最后一个经手者,曾经微软是CLR的唯一代码提供者,包括了将IL到机器码,并且将IL中的许多特性进行翻译之后优化执行的功能,与JVM在某些地方存在相似,但是实际上又有多处不同。

什么是CLR

CLR via C#

CLR=公共语言运行时=(Common Language Runtime)

在运行的时候实际上它是操作系统上面的一个层级的系统,通过将托管模块中的IL代码能够被翻译成机器代码以供计算机运行。被称为"运行时"实际上就是因为在程序运行的全程,CLR负责将提交操作到系统的这样一个工作。

如何工作

三个点

  1. 程序集
  2. JIT
  3. 功能模块

首先,支持CLR的编译器将其对应的语言翻译成IL并生成元数据之后,将其封装为托管模块之后,与资文件一起合并为程序集。

紧接着因为IL无法被计算机原生理解,所以CLR会把IL翻译成机器代码,使得机器得以执行

当程序运行时,CLR同时负责了不同部分的拓展功能,包括除加载程序集以外的所有模块

CLR via C#

误区

CLR托管代码比native代码要更慢吗

通常意义上来说是的,尤其是某一段IL代码没有被加载之前,可以认为其比CLR更慢一些,因为存在一个翻译到内存的过程,但是实际上在日常进行运行的时候,因为其实际上也被翻译成了机器代码,所以速度上并没有太大的劣势

CLR与JVM等价吗

不,JVM更多的是做一个类似于CLR中的C#->IL->机器代码的过程,CLR同时包括了线程同步等内容,虽然在现在CLR与JVM的类型已经有一点类似,但是在严格意义上来说,CLR应当是在CLR语言中的JVM类型的超集

CLR只能运行托管代码

并不,实际上可以通过dll等方式连接非托管代码,使得运行与CLR上的语言也可以越过CLR直接操作操作系统的内存与CPU状态或调度等内容

脚本宝典总结

以上是脚本宝典为你收集整理的CLR via C#全部内容,希望文章能够帮你解决CLR via C#所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。