代码之家  ›  专栏  ›  技术社区  ›  John Sibly

提供64位特定版本的软件

  •  6
  • John Sibly  · 技术社区  · 17 年前

    什么样的应用程序从64位特定的构建中受益?

    6 回复  |  直到 17 年前
        1
  •  18
  •   Mr Fooz    17 年前

    Intel x64与x86的体系结构优势

    • 更大的地址空间
    • 可以链接外部库或加载64位插件

    x64模式的架构缺点

    在我编写的应用程序中,当切换到64位时,有时会出现较大的加速(30%),有时会出现较大的减速(>2x)。数字处理/视频处理应用程序中出现了巨大的加速,而我正是在这些应用程序中注册的。

    在我自己的代码中,当转换到64位时,我看到的唯一一个巨大的减速是来自一个大规模的指针跟踪应用程序,其中一个编译器进行了一些非常糟糕的“优化”。另一个编译器生成了性能差异可以忽略不计的代码。

    现在移植的好处

    一旦你知道要注意什么,99%的时候编写64位兼容代码并不难。大多数情况下,它归结为在引用内存地址时使用size_t和ptrdiff_t而不是int(我在这里假设使用C/C++代码)。转换大量未编写为64位感知的代码可能是一件痛苦的事情。

    即使为您的应用程序构建64位版本没有意义(可能没有意义),也值得花时间了解构建所需的时间,以便至少所有新代码和未来重构都能兼容64位。

        2
  •  5
  •   Mark Brittingham    17 年前

    在努力弄清楚64位构建是否有技术案例之前,您必须验证是否存在 商业 案例您的客户是否要求这样的构建?它会让你在与其他供应商的竞争中获得决定性的优势吗?创建这样一个构建的成本是多少?在您的会计、销售和营销流程中添加另一个项目会产生什么业务成本?

    尽管如此,我的总体 对此的回应是,绝大多数面向用户的应用程序将看不到64位构建的优势。想想看:当前应用程序中有多少性能问题来自处理器绑定(或RAM访问绑定)?是否存在性能问题 在里面 您当前的应用程序?(如果不是,你可能不应该问这个问题。)

    如果是客户端/服务器应用程序,我敢打赌,网络延迟对客户端性能的贡献要大得多(特别是当您的查询通常返回大量数据时)。假设这是一个数据库应用程序,您的性能配置文件中有多少是由于服务器上的磁盘延迟时间造成的?如果您考虑影响性能的所有因素,您将更好地了解您的特定应用程序是否会从64位升级中受益,如果是的话,您是否需要同时升级这两个方面,或者您的所有好处是否仅来自服务器端升级。

        3
  •  1
  •   TheSmurf    17 年前

    真的,没什么别的了。尽管在某些情况下,作为程序员,编写64位应用程序对您有一些好处。一个简单的例子是一个应用程序,其主要焦点是与注册表交互。作为一个32位进程,您的应用程序将无法访问64位系统上的大量注册表。

        4
  •  1
  •   Community Mohan Dere    9 年前

    继续@ mdbritt 在他的评论中,如果是服务器构建,或者是分发给Linux用户,那么64位构建(目前)更有意义。

    似乎更多的Windows工作站仍然是32位的,而且新版本的客户群可能不多。

    另一方面,现在许多服务器安装是64位的:RHEL、Windows、SLES等。 在我看来,为他们建造房屋将切断许多潜在的用途。

    桌面Linux用户也可能运行他们最喜欢的发行版的64位版本(最有可能是Ubuntu、SuSE或Fedora)。

        5
  •  0
  •   OIS    17 年前
        6
  •  0
  •   Edouard A.    17 年前

    由于额外的寄存器和新的传递参数约定(实际上与额外的寄存器链接),您可以期望获得增益。

    推荐文章