一部のソフトウェアプロデューサーは、最小要件、いくつかの例を提供しています: Skype 、 Diablo III 、 buntu-Server および OpenOffice 。
これらの最小要件、特に一般的にRAM、CPU周波数はどのように決定されるのでしょうか。その背後にロジックはありますか、それともエンドユーザーにとって何が問題ないかを見つけるために異なるハードウェアでプログラムをテストすることによって決定されますか?
このようなパラメーターを決定するロジックがある場合、たとえば、CまたはJavaコード(> 10k行があると想定))のそのような要件をどのように準備できますか?
それらの最小要件、特にRAM、CPU周波数一般はどのように決定されるのでしょうか。その背後にロジックはありますか、それともエンドユーザーにとって何が問題ないかを見つけるために、さまざまなハードウェアでプログラムをテストすることによって決定されますか?
まあ、明確な答えを出すことはできません。 (人、グループ、企業によって、アイデアやアプローチは異なります。)
しかし、一般的には、機能する可能性が高い唯一の方法は経験的です。つまり、試してみてください。
サポートされているさまざまなプラットフォームにソフトウェアをインストールし、ディスク容量を測定します。
それを実行します1 さまざまなCPU速度とさまざまな量のメモリを備えたさまざまなシステムで:
社内ユーザーおよび外部ベータテスターからのフィードバックを組み込みます。
1-アプリケーションの性質に応じて、さまざまなサイズの問題、データセット、オンラインユーザーの数など、妥当な程度まで試行する必要がある場合があります。
ロジックを適用するだけで信頼できるプラットフォームの推奨事項を得ることができるケースはありません。少なくとも、いくつかのテストを実行して「パフォーマンスモデル」を調整する必要があります。
問題のサイズとパフォーマンスの間に相関関係がある場合でも、通常を確実に予測することはできませんwhenスケーリング関連のパフォーマンスの問題が発生するまで...問題。
指定することを覚えておくべきことがたくさんあります( http://en.wikipedia.org/wiki/System_requirements )。
主に:
その他の推奨事項:
異なる設定のマシン/ VMでエンドツーエンドのトランザクション/プロセスを実行するときにアプリケーションをプロファイリングすると、役立つ場合があります。これは、cpu時間と呼び出しの数によって異なるメソッド/プロセスを実行するのにかかる時間を確認するのに役立ちます。また、基盤となるVM /ハードウェアを調整すると、微調整に役立ちます。プロファイラーは、実行中に割り当てられたヒープメモリの量も通知します。したがって、最小メモリ要件については、確かにそれらを超えたいと考えています。メジャーJava IDE-NetbeansとEclipseにはそれらがあります。
Webアプリケーションの場合は、ロードツールの下に配置することを検討してください。 LoadUI。これらを使用すると、Webアプリでのヒット数/時間とサーバーでのCPU使用量/メモリ使用量などの統計を比較できます。
CPUやメモリなどの測定可能なリソースに関しては、公式はありません。忙しい現代のオペレーティングシステムで現代の「マジック」言語で書かれた現代の巨石のマルチスレッドソフトウェアは不可能ですpredict。ベンチマークを実行するだけです。
ソフトウェアがほとんど使用できなくなるポイントを見つけます。次に、数字を少しパディングして、ユーザーがインストールしたすべてのいたずらなソフトウェア、違法な映画のダウンロードなどをバックグラウンドで説明します...さて、またはユーザーのエクスペリエンスをより多く保証したい場合は素晴らしいパフォーマンス。