我的C ++程序应该支持IA64还是仅支持x64?

时间:2008-10-21 05:46:12

标签: c++ c 64-bit itanium

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

我自己无法轻易找到IA64电脑。 IA64死了吗?

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

6 个答案:

答案 0 :(得分:7)

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

有些东西可能会妨碍ia64端口:

  • 您需要支持的任何第三方工具或库
  • 在x86和x64上大部分未被注意的未对齐访问将导致ia64上的麻烦

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

是否有任何客户或潜在客户被询问?

答案 1 :(得分:2)

您是唯一有资格判断预期销售额是否会支付开发和支持费用的人。

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:1)

理论上,假设你坚持使用优秀的C ++编程实践,你不应该关心你写的是x64,IA64甚至是SPARC或PowerPC等等。只要确保你的代码是64位干净的(就像不假设整数和指针的大小相同),你会没事的。

...除

由于您的语言存在异常的硬件问题,不合规的编译器或“实现定义的”尖角,总会出现奇怪的条纹状况。 (C和C ++都包含很多“实现定义”的东西!)

因此...

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

答案 4 :(得分:0)

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

答案 5 :(得分:-1)

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