【问题标题】:x86 - x64 porting queryx86 - x64 移植查询
【发布时间】:2011-09-27 06:10:58
【问题描述】:

我们有一个用 C/C++ 代码编写的应用程序,在 32 位 Windows 和 32 位硬件上运行。我的问题是,如果我们将硬件升级到 64 位并保持我们的操作系统为 32 位,我的应用程序是否需要到 64 位的端口?如果需要,32 位操作系统有什么好处?

【问题讨论】:

  • 您已经拥有 64 位硬件。过去 8 年左右销售的几乎所有 CPU 都支持 64 位(少数 Atom 除外)。

标签: windows x86 64-bit 32bit-64bit porting


【解决方案1】:

硬件不算——操作系统会。尔格:

  • 带有 32 位操作系统的 32 位硬件只能运行 32 位端口
  • 带有 32 位操作系统的 64 位硬件只能运行 32 位端口
  • 64 位硬件和 64 位操作系统将同时运行 32 位和 64 位端口

为 64 位重新编译的优势是可以访问超过 3GB 的内存,并且如果您在 64 位数据类型上操作或利用编译器本质(以及其他一些,但不要指望立即获得),速度会提高。

【讨论】:

  • 构建为 64 位可以立即提高某些代码的速度,这仅仅是因为可用的寄存器更多,而且 x86-64 调用约定比大多数老旧的 32 位堆栈参数约定更有效。 (但重指针的数据结构使用更多的缓存占用空间。)这是 x86 -> x86-64 所独有的。大多数其他 ISA(如 MIPS)在 64 位时只能获得更多的地址空间。
【解决方案2】:

如果您将 OS 保留为 32 位,则必须将应用程序保留为 32 位,因为 OS 的许多常见值。当然,我们无法通过心灵感应来判断您使用的是哪个操作系统。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多