4

現在、32ビット、64ビット、Windows XP Home、Windows XP Pro、Windows Vista Home Basic、Windows Vista Ultimate、Windows 7 Home Basic、およびWindows7Ultimateでテストする予定です...すべて最新のサービスパックを使用しています。

ただし、上記のすべてのシナリオでAMDとIntelの両方でテストする価値があるのか​​、それとも時間の無駄になるのでしょうか。

注:これは、日常の平均的なユーザー向けのセキュリティアプリケーションです。

4

9 に答える 9

9

私の考えでは、これは、最先端の手書きのアセンブリ言語がたくさんある場合、またはある種の非常にタイトなタイミング(とにかくそのOSの選択に対応することはない)がある場合にのみ価値があります。

市販の商用コンパイラを使用している場合は、通常のすべてのプロセッサで実行されるコードを生成することを合理的に確信できます。

もちろん、特定のプラットフォームでテストする必要がないことを誰も証明できませんでしたが、CPUブランドよりも、プラットフォームの違いについて心配する大きな原因があると思います(たとえば、さまざまなマルチコア/ハイパースレッディングの順列すべて)。これにより、マルチスレッドコードのすべてのバグがさまざまな方法で公開される可能性があります)

于 2010-07-16T21:09:20.710 に答える
4

アセンブリでプログラミングしていて、拡張されたベンダー固有の命令セットを使用している場合のみ。しかし、AMDとIntelはクロスライセンス契約を結んでいるため、これは現在の問題よりも歴史的な問題です。

他のすべての場合(たとえば、高級言語を使用する場合)、コードがx86に準拠し、すべてのCPUで実行されるようにするのはコンパイラー作成者の仕事です。

ああ、そしてFDIVバグプロセッサを除いて、ベンダーは通常間違いをしません。

于 2010-07-16T21:10:54.077 に答える
1

シナリオのテストについて、あなたは間違った方向を見ていると思います。

はい、コードはIntelでは動作するがAMDでは動作しない可能性があります。または、WindowsVistaHomeでは動作するがWindowsVistaProfessionalでは動作しない可能性があります。ただし、最初のケースでは低レベルのプログラミング、または2番目のケースではOS実装の詳細に非常に密接に関連する何かをしているのでない限り、確率は小さいです。考えられるすべてのシナリオをテストすることは決して害にはならないと言うことができます。しかし、実際には、テストに使用できるリソースにはある程度の制限が必要です。異なるプロセッサまたは異なるOSでのテストは、ほとんどの場合、プログラムをテストするのではなく、コンパイラ、OS、またはプロセッサをテストします。他の人の仕事をテストするためにどれくらいの時間を割く必要がありますか?自分のコード内でより多くのシナリオをテストするために時間を費やしたほうがよいと思います。あなたはあなたのアプリが何をするのかについて多くの詳細を与えません、

実際には、Windowsでの展開とLinuxでの展開をテストすることはめったになく、異なるバージョンのWindowsを気にすることはなく、それにやけどを負うことはめったにありません。

低レベルのデバイスドライバーなどを書いているとしたら、それは別の話になります。しかし、通常のアプリ?時間を無駄にしないでください。

于 2010-07-16T21:53:45.550 に答える
0

確かに、それは私にとって時間の無駄になるように聞こえます-あなたのプログラムはどの言語で書かれていますか?

于 2010-07-16T21:08:33.990 に答える
0

いいえと思います。アセンブラでアプリケーションを作成しているのでない限り、違いを心配する必要がないように、プロセッサから十分に離れている必要があります。プロセッサは、APIが(言語に応じて)インターフェースしているものであるWindowsOSをサポートします。.NETを使用している場合、予測できる唯一の問題は、それらのプラットフォームがサポートしていないバージョンのフレームワークを使用している場合です。それらがすべてXP以降であることを考えると、問題ないはずです。何か心配したい場合は、アプリケーションがVista以降のセキュリティモデルでうまく動作することを確認してください。

于 2010-07-16T21:10:21.033 に答える
0

問題はおそらく「何をテストしているのか」です。AMDとIntelのハードウェアプラットフォーム間で潜在的に異なるものをテストしている可能性はほとんどありません。ドライバーレベルでの違いが予想されるかもしれませんが、周りで利用可能なPCハードウェアの既存のすべてのビットについてソフトウェアを平面テストしているようには見えません。おそらく、AMDプロセッサとIntelプロセッサの間よりも、さまざまなレベルのWindowsサービスパックの間ではるかに多くの違いがあるでしょう。

于 2010-07-16T21:11:33.857 に答える
0

コードには、(知っているかどうかに関係なく)結果に深刻な影響を与える可能性のある処理/最適化を利用する機能がある可能性があると思います。可能なキーワード。

一般的に、あなたはそれについて心配する必要はないでしょう。とにかく複数のマシンでそれを行うつもりなら、それらでそれを混ぜ合わせてください。しかし、私はそれについて強調しません。

于 2010-07-16T21:12:15.197 に答える
0

どちらか一方に固有の問題を具体的に修正しない限り、AMDとIntelの両方ですべての回帰テストを実行することはありませんでした。それが回帰テストです。

一方、ユニットテストは...違いはないと思います。繰り返しになりますが、AMDまたはIntelのいずれかに固有の問題が実際に発生するまで、両方で単体テストを実行する必要はありませんでした。

于 2010-07-16T21:43:51.837 に答える
0

正確で一貫性のある浮動小数点の結果に依存している場合は、確かにそうです。

于 2010-07-16T22:48:37.990 に答える