7

我的程序应该支持 IA64,还是应该只支持 x64?

我自己无法轻松找到 IA64 计算机。IA64死了吗?

MS 似乎对 IA64 有广泛的支持,但我花了很长时间才找到一个 IA64,最后我不得不在 eBay 上得到它。

4

6 回答 6

8

你开发什么样的软件?如果它不是数据中心类型的应用程序或高端数字运算应用程序,如果对 ia64 版本有任何需求,我会感到惊讶。即便如此,我认为这将是一种情况,如果你必须询问是否应该支持它,你可能不需要。

我想到的几件事可能会妨碍 ia64 端口:

  • 您依赖的任何第三方工具或库都需要支持它
  • 在 x86 和 x64 上基本上未被注意到的未对齐访问将在 ia64 上引起头痛

当然,我不为 Gartner 或 IDC 或任何进行市场分析的人工作,所以你应该带着怀疑的态度接受我在这里所说的话。

有客户或潜在客户询问过吗?

于 2008-10-21T07:09:53.510 回答
2

如果您可以访问 IA64,那么让您的代码在其上运行是绝对值得的。将您的代码移植到另一个 CPU 架构将揭示各种隐藏的问题。

您可能有一个字符串溢出 1,它不会在 Linux/Windows/x86 上显示出来,但由于堆栈布局或结构对齐方式不同而导致程序崩溃。您可能会假设 ~1UL == 0xFFFFFFFF。

我保持我的 C++ 代码 IA64 干净,但我已经有几台机器,因为我是粉丝。

于 2010-03-07T15:50:05.183 回答
1

您是唯一有资格判断预期销售额是否能够支付开发和支持成本的人。

于 2008-10-21T06:00:53.710 回答
1

从理论上讲,假设您坚持良好的 C++ 编程实践,您不应该关心您正在写入的是 x64、IA64 还是 SPARC 或 PowerPC 或其他什么。只要确保您的代码是 64 位干净的(就像不假设整数和指针大小相同),您就可以了。

除了...

异常的硬件问题、不符合标准的编译器或您的语言中的“实现定义的”尖角总是会导致奇怪的边缘条件。(C 和 C++ 都包含很多“实现定义”的东西!)

所以...

你会想要测试你的目标。这可能会变得非常昂贵,但有些地方可以让您在给定的硬件平台上测试应用程序,但需要付费。如果你在跨平台的东西上做了很多工作,那么在内部购买你的硬件可能是最便宜的,但小商店和稀有平台通常最好在租用的数据中心硬件上进行测试。

于 2010-03-07T14:59:51.057 回答
0

除非客户特别要求,否则我不会为 IA64 支持而烦恼。否则,它只是另一个测试平台。英特尔是否仍然生产任何基于 IA64 的处理器?

于 2008-10-21T11:16:26.397 回答
-1

如果您使用 C++ 编写,这真的很重要吗?我的意思是,你没有说是什么让你的程序“需要知道”它运行的机器的底层架构。从 C++ 本身来看,您应该得到很好的保护,避免两者之间的任何差异。当然,在深奥的平台上进行测试可能会很困难,但是您必须在您“支持”的所有平台上自己进行测试吗?

于 2008-10-21T06:01:30.400 回答