6

ソフトウェアの最小要件を評価する方法はありますか? たとえば、アプリケーションが必要とする RAM の最小量をどのように見つければよいのでしょうか?

ありがとう!

4

5 に答える 5

5

ここでは、プロファイラーは役に立ちません。データ構造のサイズを見積もることもできません。

プロファイラーは、コードが最も多くの CPU 時間を消費している場所を確かに教えてくれますが、パフォーマンスの目標を達成できていないかどうかはわかりません。たとえば、特定のシステムでのアプリケーションのパフォーマンスにユーザーが満足するかどうかはわかりません。

データ構造のサイズと、一度に割り当てられる可能性のある数を計算するだけでは、時間の経過に伴うメモリ使用量の正確な全体像はまったく得られません。その理由は、メモリ使用量は、アプリケーションが行う I/O の量、アプリケーションが使用する OS サービス、そして最も重要なこととして、アプリケーションがメモリを使用する方法の一時的な性質など、他の多くの要因によって決定されるためです。

最小要件を理解する最も効果的な方法は、

  • ユーザーにとって重要な指標を使用してパフォーマンスを測定する効果的な方法があることを確認してください。最良の指標は応答時間です。アプリによっては、スループットや 1 秒あたりの操作数などのレートが適用される場合があります。あなたの測定値は経験的かもしれませんが(例えば、試してみてください)、それは最も効果的ではありません. これは、ある種の機器を使用して行うのが最適です。Windows では、選択肢は [ETW][1] です。他のオペレーティング システムには、他の適切なメカニズムがあります。
  • アプリケーションを実行する何らかの自動化された方法を用意してください。これにより、信頼性の高い測定を繰り返し行うことができます。
  • さまざまなメモリ サイズを使用してアプリケーションを測定し、パフォーマンスが低下し始める場所を確認します。これにより、アプリケーションのパフォーマンスを妨げるパフォーマンス バグが明らかになる可能性もあります。さまざまなパフォーマンス レベルのプラットフォームにアクセスできる場合は、それらも使用します。あなたのアプリが何をするかを示していませんでしたが、1 GB のメモリを搭載したネットブックでのテストは、多くの (すべてではない) クライアント アプリケーションに適しています。

CPU や、ディスク、ネットワーク、GPU などの他のコンポーネントでも同じことができます。

また、ここには単純な答えがないことにも注意してください。最小要件の設定で効果的な仕事をすることは実際の仕事です。これは、アプリケーションが何らかのプラットフォームの側面に参加型である場合に特に当てはまります。

他にも要因があります。たとえば、メモリを大量に消費している、または CPU ピッグの可能性がある別のアプリケーションをユーザーが開くまで、ある構成でアプリが正常に動作する場合があります。ユーザーが 1 つのアプリケーションしか開いていないことはめったにありません。

これは、最小要件を指定することに加えて、ユーザーの期待を設定する効果的な仕事をしなければならないことを意味します。つまり、アプリケーションがいつうまく機能し、いつうまくいかないか、パフォーマンスに影響を与える要因は何かを説明します。

[1]: http://msdn.microsoft.com/en-us/library/ms751538.aspx強力なテキスト

于 2009-07-03T15:50:08.120 に答える
3

理想的には、対象ユーザーに基づいてソフトウェアの最小要件を決定し、開発中にその構成でソフトウェアをテストして、満足のいくエクスペリエンスが提供されることを確認します。

ソフトウェアを実行しているシステムを見て、アプリケーションによって消費されているメモリの量を確認し、それを使用して消費されているメモリの量を導き出すことができます。CPU はもう少し複雑です。CPU 要件をモデル化することもできますが、これを正確に行うのは難しい場合があります。

ただし、最終的には、対象のベース システムでアプリをテストする必要があります。

于 2009-07-03T15:38:10.620 に答える
1

アプリケーションが使用するデータ構造を考慮して、通常の使用でどのくらいのスペースを占めるかを見積もります。その見積もりを使用して、さまざまなシナリオ (つまり、さまざまなターゲット オペレーティング システム、さまざまな仮想メモリ設定など) で見積もりをテストするために、多数のマシン (仮想または物理) をセットアップします。

次に、さまざまなシナリオでアプリケーションのパフォーマンスを測定します。最小設定は、パフォーマンスが最も低いマシンですが、それでも許容範囲内です。

于 2009-07-03T15:36:39.903 に答える
0

ソフトウェアのストレス テスト中にパフォーマンス プロファイラーを使用してみてください。

于 2009-07-03T15:36:15.523 に答える
0

仮想化を使用して、仮想マシンでさまざまな量の RAM を使用して代表的なテスト スイートを繰り返し実行できます...スワッピングが原因でパフォーマンスが許容レベルを下回った場合は、メモリ要件が見つかりました。

于 2009-07-03T15:39:43.110 に答える