.NET 6.0中的Crossgen2技术有哪些研究进展?
- 内容介绍
- 文章标签
- 相关推荐
本文共计776个文字,预计阅读时间需要4分钟。
.NET 6.0 引入了 Crossgen 工具的后续版本 Crossgen2,该工具提供了程序提前(AOT)编译的能力。什么是 Crossgen?在我们日常开发中,常常使用 Crossgen。
NET 6.0引入了Crossgen工具的后续版本Crossgen2,这个工具提供了程序提前(AOT)编译的能力。
什么是CrossGen?
我们日常开发时使用C#编译器CSC编译一个.NET程序集,程序集包含MSIL代码(中间语言代码)。当应用程序运行时,目标环境的本地JIT编译器将MSIL代码转换为本机代码,然后CPU才能执行它们。
但是这种JIT编译到导致应用程序启动很慢,因为JIT编译器必须花时间翻译代码。
为了实现更快地启动应用程序,CoreCLR包含了一个名为CrossGen的工具,它可以将MSIL代码预编译成本机代码。
其实最早可以追溯到.NET ngen技术,Ngen.exe (Native Image Generator)
然后,.NET 6设计引入Crossgen2有两大目标:
- 提高crossgen开发的效率
- 并实现crossgen目前无法实现的一系列功能。
这种转换有点类似于本机代码csc.exe升级演进为基于Roslyn的托管代码编译器。这种过程。
Crossgen2是用C#编写的,但是它没有像Roslyn那样公开一个功能全面的API,可以编程灵活使用。
本文共计776个文字,预计阅读时间需要4分钟。
.NET 6.0 引入了 Crossgen 工具的后续版本 Crossgen2,该工具提供了程序提前(AOT)编译的能力。什么是 Crossgen?在我们日常开发中,常常使用 Crossgen。
NET 6.0引入了Crossgen工具的后续版本Crossgen2,这个工具提供了程序提前(AOT)编译的能力。
什么是CrossGen?
我们日常开发时使用C#编译器CSC编译一个.NET程序集,程序集包含MSIL代码(中间语言代码)。当应用程序运行时,目标环境的本地JIT编译器将MSIL代码转换为本机代码,然后CPU才能执行它们。
但是这种JIT编译到导致应用程序启动很慢,因为JIT编译器必须花时间翻译代码。
为了实现更快地启动应用程序,CoreCLR包含了一个名为CrossGen的工具,它可以将MSIL代码预编译成本机代码。
其实最早可以追溯到.NET ngen技术,Ngen.exe (Native Image Generator)
然后,.NET 6设计引入Crossgen2有两大目标:
- 提高crossgen开发的效率
- 并实现crossgen目前无法实现的一系列功能。
这种转换有点类似于本机代码csc.exe升级演进为基于Roslyn的托管代码编译器。这种过程。
Crossgen2是用C#编写的,但是它没有像Roslyn那样公开一个功能全面的API,可以编程灵活使用。

