3

我的假设可能是错误的,但我认为 JIT 编译的主要优点是允许 JIT 编译器为目标机器特定硬件编译的单个可分发文件。

如果是这样,那为什么编译 C# 时可以指定目标平台?

谢谢。

4

1 回答 1

9

很多时候你不需要,默认就可以了。但是,在某些情况下,默认值Any CPU可能会导致问题。例如,如果您依赖于 32 位非托管 dll。如果您保留它Any CPU并尝试在 64 位系统上运行它,JITter 会将您的 .Net 代码构建为 64 位可执行文件,然后将无法成功加载 32 位依赖项。在其他情况下,能够指定平台也是有利的。另一个例子是当您构建一个应用程序时,您知道该应用程序将用于将非常大的数据集加载到内存中。如果这些数据集可能超出 32 位程序可用的虚拟地址空间,您可能需要指定您正在构建一个 64 位应用程序。

于 2013-10-02T14:12:51.350 回答