现在我计划在32位,64位,Windows XP Home,Windows XP Pro,Windows Vista Home Basic,Windows Vista Ultimate,Windows 7 Home Basic和Windows 7终极之中的Windows 7终极...全部最新的服务包。

但是,现在我想知道它是否值得在上面列出的所有上市场景上测试AMD和英特尔,或者它会浪费时间吗?

注意:这是日常平均用户的安全应用程序。

有帮助吗?

解决方案

我的感觉是,如果您有许多令人难以置信的汇编语言或某种令人难以置信的严格的时间。

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

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

其他提示

只有在您在装配和使用扩展的时装时编程时,才会进行编程。但由于AMD和英特尔有交叉许可协议,这更像是历史性问题,而不是当前的问题。

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

哦,除了 fdiv bug 处理器供应商通常不会做错误。

我认为你正在寻找错误的测试方案的方向。

是的,您的代码可能会在英特尔上工作,但不是在AMD上,或在Windows Vista Home中,但不在Windows Vista Professional中。但除非您在第一个案例中进行与低级编程密切相关的东西,或者在第二个案例中的详细信息,否则赔率很小。你可以说它永远不会伤害测试每个可以想象的场景。但在现实生活中,您必须对您提供的资源必须有一些限制。在大多数情况下,在不同的处理器或不同的操作系统上测试,而不是测试您的程序,它正在测试编译器,操作系统或处理器。您需要多长时间才能测试其他人的工作?我认为您的时间会更好地在您自己代码中测试更多场景。你没有在你的应用程序中提供很多细节,而只是为了拍摄我自己的一个例子,花费一天测试销售产品我们自己的公司使我们与其他制造商的产品变得更加富有成效,或者测试不同州的销售税规规则,或其他。

在实践中,我很少甚至在Windows上进行测试,而不是在Linux上部署,从不介意不同版本的Windows,我很少刻录。

如果我正在编写低级设备驱动程序,或者这将是一个不同的故事。但正常的应用程序?不要浪费你的时间。

肯定听起来像是浪费时间 - 哪种语言是你的程序?

我会说没有。除非您在汇编程序中编写应用程序,否则您应该足够从处理器中删除,以不需要担心差异。处理器将支持Windows操作系统,其API是您的选择性(取决于语言)。如果您使用的是.NET唯一可用于可用于的问题,您将使用那些平台不支持的框架版本。鉴于他们都是XP或以后,你应该没问题。如果您想担心某事,请确保您的应用程序将与Vista和以后的安全模型很好地播放。

问题可能是“你在测试什么”。任何测试都不太可能测试AMD和英特尔硬件平台之间可能不同的东西。驾驶员级可以预期差异,但似乎您似乎并未为您的每种现有PC硬件进行测试。在Windows Service Pack的不同级别之间,大多数可能比AMD和英特尔处理器之间的差异更大。

我想你的代码中有一些功能(无论你知道是否知道)都会利用一个或另一个的一些处理/优化,这可能对结果产生严重影响。关键字可能。

我会说一般来说,你不太可能担心它。如果您要在多台机器上进行,请将其混合在上面。但我不会强调它。

我永远不会在AMD和英特尔上运行所有回归测试,除非我已经专门修复了一个人唯一的问题。这就是回归测试。

另一方面

单元测试......我不会预测任何差异。所以再次,直到我实际上看到一个特定于AMD或英特尔的问题,我不会打扰运行的单位测试。

如果您依靠准确/一致的浮点结果,则肯定是。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top