Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';.NETCoreClr、CoreRT、Roslyn和LLILC之间的区别是什么_.net_Clr_Roslyn_Coreclr_Corert - Fatal编程技术网

什么';.NETCoreClr、CoreRT、Roslyn和LLILC之间的区别是什么

什么';.NETCoreClr、CoreRT、Roslyn和LLILC之间的区别是什么,.net,clr,roslyn,coreclr,corert,.net,Clr,Roslyn,Coreclr,Corert,最近我开始阅读有关.NET重组的详细信息(主要是通过)。 他们创建了兄弟项目以支持更多的平台,这一点值得注意。在阅读过程中,我的印象是and是property编译器的一个新的开源版本。CoreRT提供本机(AOT)编译。并且是一个指导LLVM框架的替代实现 有人能从用户的角度确认和描述这个项目的差异和目标吗?为什么将来会有人使用Roslyn而不是CoreCLR?Roslyn是一个编译器平台,它使您能够为C#和VB编程语言构建静态和动态分析工具以及自定义语言扩展和转换。它还使您能够将这些语言嵌入到

最近我开始阅读有关.NET重组的详细信息(主要是通过)。 他们创建了兄弟项目以支持更多的平台,这一点值得注意。在阅读过程中,我的印象是and是property编译器的一个新的开源版本。CoreRT提供本机(AOT)编译。并且是一个指导LLVM框架的替代实现


有人能从用户的角度确认和描述这个项目的差异和目标吗?为什么将来会有人使用Roslyn而不是CoreCLR?

Roslyn是一个编译器平台,它使您能够为C#和VB编程语言构建静态和动态分析工具以及自定义语言扩展和转换。它还使您能够将这些语言嵌入到其他语言或应用程序中。Roslyn包括C#和VB编译器以及其他工具。这些编译器发出公共中间语言(CIL)代码

要运行此代码,必须将CIL编译成目标计算机体系结构可以执行的二进制代码。NET目前提供了三种方法:

  • 在应用程序运行时,使用JIT编译器将CIL代码编译成二进制代码。该模型由CORECRL实现。CoreCLR作为CLR的副本启动。它已被修改以支持不同的操作系统。它们是分开和并行维护的
  • 将CIL代码编译成二进制代码,并集成任何必需的.NET framework组件,以生成一个独立的可执行文件,该文件的性能更接近用本地语言编写的代码。这项技术被称为。CoreRT是这项技术的开源实现。NET Native和CoreRT之间的主要区别在于前者使用的AOT编译器是UTC编译器(MSVC编译器后端),而后者当前使用RyuJIT。UTC在优化代码方面比RyuJIT更积极。同样在CoreRT中,运行时的一些组件已经用C#干净地重新实现。CoreCLR仍然使用C++实现。
  • NGEN与.NET Native类似,只是生成的可执行文件不是自包含的,需要外部安装的运行时
  • LLILC是基于可移植LLVM编译器框架的CIL编译器。它可用于构建JIT(当前)和AOT(未来)编译器。该编译器的优点在于它利用CLAN C++编译器优化,并将LLVM可扩展性模型(分析和优化传递)引入.NET.<
    CoreRT和LLILC是新项目,仍处于早期开发阶段,需要更多的工作来支持生产应用。因此,如果您是用户而不是贡献者,CoreCLR和Roslyn将为您服务。同样,CoreCLR是运行时,而Roslyn是C#和VB编译器。

    Roslyn是完全开源的,据我所知,它没有任何专有信息。CoreRT是运行时。Roslyn是C#和VB编译器,将源代码编译成IL。它们是完全不同的东西。@JonSkeet-你应该把你的评论作为回答。我不这么认为。这将是一个非常简短的回答,没有太多的细节。。。老实说,一个简单的搜索就会发现更多。我在这里的评论是:有人知道LLILC是否仍在积极开发中,或者是否有替代品?他们的GitHub页面在过去两年中没有显示任何活动。“看来LLILC既没有死也没有活。@AnthonyGatlin是什么让你认为他们在把人们从.NETCore中推开?”?他们在.net核心上投入了大量精力。NETCore3.0将于2019年发布,并计划与C#8一起发布更多版本。0@JohnOsborne,我已经改变了我的观点,因为我在八个月前离开了那个评论。我每天都在使用.NETCore,我同意他们正在为这个项目投入大量资源。我的意见不正确。