gpt4 book ai didi

c# - CLR 与 JIT

转载 作者:IT王子 更新时间:2023-10-29 03:54:57 29 4
gpt4 key购买 nike

JIT 编译器和 CLR 有什么区别?如果您将代码编译为 il 并且 CLR 运行该代码,那么 JIT 在做什么?将泛型添加到 CLR 后,JIT 编译发生了怎样的变化?

最佳答案

您将代码编译为 IL,后者在运行时执行并编译为机器代码,这就是所谓的 JIT。

编辑,进一步充实答案(仍然过于简化):

当您在 visual studio 中编译 C# 代码时,它会变成 CLR 可以理解的 IL,IL 对于在 CLR 之上运行的所有语言都是相同的(这使得 .NET 运行时能够使用多种语言并且它们之间的互操作很容易)。

在运行时,IL 被解释为机器代码(特定于您所在的体系结构),然后执行。这个过程叫做即时编译,简称JIT。只有需要的 IL 被转换为机器代码(并且只有一次,一旦被编译为机器代码,它就会被“缓存”),及时在它被执行之前,因此得名 JIT。

这是 C# 的样子

C# Code > C# Compiler > IL > .NET Runtime > JIT Compiler > Machinecode > Execution

这就是 VB 的样子

VB Code > VB Compiler > IL > .NET Runtime > JIT Compiler > Machinecode > Execution

正如您所看到的,只有前两个步骤对于每种语言都是唯一的,在转换为 IL 之后的所有内容都是相同的,正如我之前所说,这就是您可以在 .网络

关于c# - CLR 与 JIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/601974/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com