Xamarin提前(AOT)编译器与普通编译器

问题描述 投票:0回答:1
.

但是,我没有得到的是为什么需要被称为“提前”而不是仅仅是普通编译器的原因。 Xamarin的AOT编译器与传统编译器之间有任何区别,还是这只是营销术语?

aot如何与传统的JIT编译器相比

时间(AOT)汇编与time-intime nimecompilation

(jit)。 简而言之,.NET编译器不会生成平台特定的装配代码,它们生成.NET字节码,由.NET虚拟机解释的说明。 此字节码是便携式的,任何.NET VM都可以运行它,无论是Windows Phone,Linux上的Mono还是基于
ios xamarin
1个回答
19
投票
。 不幸的是,由于代码必须由VM解释,因此比本地代码慢,该代码可以由处理器本身执行。 这就是JIT和AOT进来的地方。

当a .NET应用程序启动时,JIT编译器分析了字节码,请标识可以通过转换为本机代码加速的区域,并将其编译。 在执行过程中,编译器还可以识别编译的热路径。 对于.NET,Java和任何将从JIT中受益的平台,App Store服务条款不允许。 由于Xamarin无法在设备上执行JIT,并且他们知道他们会运送到ARM设备上,因此他们可以提前运行JIT型编译器(AOT)并将其捆绑到二进制中。

如何比较机器代码编译器

如上所述,AOT将解释字节的一部分转换为机器代码。 它不会消除对虚拟机字节码解释器的需求。 VM将像以前一样运行,但偶尔会看到一条说“执行机器代码的块”的指令。

这只是一个营销术语吗?

没有。 Xamarin在该段中传达的信息是,其代码的性能比基于简单的字节代码语言更快。 对于iOS和Android,他们都可以在热代码路径上执行本机代码以提高性能。 术语AOT和JIT是有关他们如何做的技术细节。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.