2016-08-25 16 views
0

私は以下のプロジェクトに直面しています。私はパフォーマンステストスイートのセットの実行中にCPUとメモリレベルを示す画像を作成したい。私はどんな提案も感謝します。py.test実行時のCPU使用率とメモリ使用率

私が検討している唯一のアプローチは、コマンドtopまたはPythonモジュールpsutilを使用してテストと並行して実行することです。しかし、すでに良い方法が存在するかどうか、py.testプラグインかもしれません。

これらのパラメータをある実行から別の実行に比較することができたらうれしいです。

テストはLinux(Ubuntu)で実行されます。

答えて

1

広範なシステム統計を取得して平均化する(上)から、プロセッサー・ハードウェア・カウンター(例えば、インテルVTuneを使用)を使用することまで、さまざまな方法があります。

psutilは完璧に見えます。私の唯一のコメントは、あなたが多くの測定値を取ってからそれらを平均して偽のスパイクなどを取り除くことを確認することです。

これらの測定を行う他の方法としては、/proc/[pid]/stat(マニュアルページを参照)、timeなどがあります。また、本当に強迫した場合は、いくつかのプログラムテクニックを使用できます。 Windowsです。

ベンチマーク値をプログラムで取得する方法については、good discussionをご覧ください。また、プログラム可能な方法を使用していなくても慣れ親しんでいるトラップのいくつかについて説明します。

Intelにはプロセッサベンチマークに関する多くの優れた情報があります。それは彼らのパンとバターです。

私ができる唯一の他のコメントは、ベンチマークを慎重に選択する必要があることです。インテルはCPUを重視しています。なぜなら、彼らは彼らが一番良いところだからです。他の企業でも同様です。実際には、アプリケーションドメインに応じて起動するホストはother important factorsです。

さまざまなメディアベースのベンチマークを見てください。単にプロセッサ時間に基づくものよりも適切かもしれません。私はベンチマークをすぐに見つけることができませんが、ビングは不思議です。

0

機能のためのライン・バイ・ラインタイミングとメモリ消費のための2つの有用なツールがあります。

インストールは

$ pip install line_profiler memory_profiler

簡単です

は、プロファイリングを行う@profileであなたの関数を飾る、その後、実行し

$ python -m memory_profiler example.pyまたは$ python -m line_profiler example.py