代码之家  ›  专栏  ›  技术社区  ›  Brian T Hannan

我应该在AMD和Intel芯片上运行回归测试程序吗?

  •  4
  • Brian T Hannan  · 技术社区  · 14 年前

    然而,现在我想知道是否值得在AMD和Intel上测试上面列出的所有场景,还是浪费时间?

    注意:这是一个面向普通用户的安全应用程序。

    9 回复  |  直到 10 年前
        1
  •  9
  •   Will Dean    14 年前

    我的感觉是,只有当你有大量的边缘手工编码汇编语言或某种难以置信的时间安排(无论如何,你不会遇到这种选择的操作系统)时,这才是值得的。

    如果您使用的是现成的商业编译器,那么您可以合理地确定它们将生成在所有普通处理器上运行的代码。

    当然,没有人能证明他们不需要在特定的平台上进行测试,但我认为平台差异的原因比CPU品牌更值得担心(例如,各种多核/超线程排列,可能以不同的方式暴露所有多线程代码错误)

        2
  •  4
  •   Johannes Rudolph    14 年前

    只有在汇编编程并使用扩展的、特定于供应商的指令集时。但由于AMD和英特尔已经签订了交叉许可协议,这与其说是当前的问题,不如说是一个历史性的问题。

    在其他情况下(例如使用高级语言),编译器编写者的工作就是确保代码符合x86并在每个CPU上运行。

    哦,除了 FDIV Bug 处理器供应商通常不会犯错。

        3
  •  1
  •   Jay    14 年前

    我认为你在测试场景时找错了方向。

    是的,您的代码可能在Intel上工作,但在AMD上不工作,或者在Windows Vista Home上工作,但在Windows Vista Professional上不工作。但是,除非你在第一种情况下做的事情与低级编程密切相关,或者在第二种情况下与操作系统实现的细节密切相关,否则可能性很小。你可以说,测试每一个可以想象的场景都不会有什么坏处。但是在现实生活中,你可以用来测试的资源肯定是有限的。在大多数情况下,在不同的处理器或操作系统上进行测试并不是测试程序,而是测试编译器、操作系统或处理器。你有多少时间来测试别人的工作?我认为您最好将时间花在测试自己代码中的更多场景上。你并没有详细说明你的应用程序是做什么的,但是举一个我自己的例子,花一天时间测试销售我们自己公司生产的产品,而不是我们从其他制造商转售的产品,或者测试不同州的销售税规则,或者诸如此类的事情,会更有效率。

    实际上,我很少在Windows上测试部署,也很少在Linux上测试部署,更不用说Windows的不同版本了,我也很少在这方面感到厌烦。

    如果我写的是低级设备驱动程序之类的东西,那就不一样了。但是普通的应用程序呢?别浪费你的时间。

        4
  •  0
  •   Will A    14 年前

    当然这听起来像是浪费时间-你的程序是用哪种语言写的?

        5
  •  0
  •   Achilles    14 年前

        6
  •  0
  •   kriss    14 年前

    问题可能是“你在测试什么”。这是不太可能的任何测试测试的东西,将有可能是不同的AMD和英特尔的硬件平台。在驱动程序级别上可能会出现差异,但您似乎并没有针对现有的每一位PC硬件对软件进行平面测试。很可能不同级别的windows服务包之间的差异要比AMD和Intel处理器之间的差异大得多。

        7
  •  0
  •   corsiKa    14 年前

    我想你的代码中可能有一些功能(不管你知道与否)利用了其中一个或另一个可能对结果产生严重影响的处理/优化。关键字可能。

    一般来说,你不必担心。如果你要在多台机器上做的话,把它们混在一起。但我不会为此感到压力。

        8
  •  0
  •   patros    14 年前

    另一方面,单元测试。。。我没料到会有什么不同。所以再说一遍,在我真正看到AMD或Intel的特定问题之前,我不会在这两个平台上运行单元测试。

        9
  •  0
  •   arsenm    14 年前

    如果您依赖于精确/一致的浮点结果,那么肯定是的。

    推荐文章