首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET的目标是什么指令集?

.NET的目标是什么指令集?
EN

Stack Overflow用户
提问于 2014-01-20 08:02:23
回答 2查看 298关注 0票数 1

几天前,我读了一篇文章(我相信是在MSDN上),文章中说由.NET JIT生成的机器代码并不针对英特尔指令集。上面写着:“英特尔输了”。这是正确的吗?如果它没有针对Intel指令集,那么它的目标是什么指令集?

我在带有英特尔四核处理器的PC上运行.NET框架。因此,英特尔必须实现.NET目标的指令集。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-20 09:30:11

由.NET JIT编译器生成的

" The“这个词很不合适。有许多抖动,每一个都是为a特定处理器体系结构生成代码。就像桌面机器上使用的x86和x64抖动一样,移动设备的ARM抖动,XBox上使用的PowerPC抖动。而“失败”的Itanium抖动,是因为没有一个处理器设计要求编译器足够聪明才能生成性能良好的代码。.NET还通过.NET微框架支持许多嵌入式处理器,但它使用的是解释器,而不是抖动。

因此,英特尔必须实现.NET目标的指令集。

明显违反了声明中的因果关系。.NET必须用它的抖动来瞄准指令集,而不是反过来。英特尔不重视.NET,以前曾经设计过针对特定VM的处理器(哈里斯用于Forth语言,ARM用于Java),但这类处理器从未成为主流。

一贯的获胜策略是开发仍然可以执行旧程序的处理器,而不必重新编译它们。因此,x86和x64体系结构非常成功。这就像在.NET中那样做,英特尔和AMD处理器有一个抖动内置在处理器核心,从古老的x86指令集转换为内部无文件的监委会-类似一个。

票数 5
EN

Stack Overflow用户

发布于 2014-01-20 08:37:19

我想这种混乱是由于公共中间语言引起的。.NET编译成用于.NET的“程序集”指令集的CIL (以前称为或MSIL)。

CIL是一个独立于CPU和平台的指令集,可以在任何支持公共语言基础设施的环境中执行。即时编译涉及到将字节码转换为由CPU立即执行的代码.

然后,特定发行版(如x86-x64)的.NET框架发行版将CIL代码转换为本机CPU指令。

希望我帮了你!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21228855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档