176

私のアプリケーションの1つが私が望むよりも多くのCPUサイクルを消費しているのではないかと思います。問題は、それがバーストで発生することです。タスクマネージャーを見るだけでは、すぐに使用できることしか示されないため、役に立ちません。

一部のプロセスのCPUとメモリの使用履歴を追跡する方法(Windowsの場合)はありますか?たとえば、「firefox」の追跡を開始し、1時間ほど後に、その時間中のCPUとメモリの使用量のグラフが表示されます。

これを実現するための既製のツールまたはプログラムによる方法を探しています。

4

16 に答える 16

175

perfmon入力しStart > RunてEnterキーを押すだけです。[パフォーマンス]ウィンドウが開いたら、+記号をクリックして、グラフに新しいカウンターを追加します。カウンターは、PCの動作のさまざまな側面であり、類似性によって「パフォーマンスオブジェクト」と呼ばれるグループにグループ化されます。

質問には、「Process」、「Memory」、「Processor」のパフォーマンスオブジェクトを選択できます。次に、これらのカウンターをリアルタイムで確認できます

ユーティリティを指定して、後で検査するためにパフォーマンスデータを保存することもできます。これを行うには、左側のパネルで[パフォーマンスログとアラート]を選択します。(上記のカウンターを提供するシステムモニターコンソールのすぐ下にあります。そこにない場合は、[ファイル]> [スナップインの追加/削除]をクリックし、[追加]をクリックして、リストから[パフォーマンスログとアラート]を選択します。 "。)[パフォーマンスログとアラート]から、[カウンターログ]の下に新しい監視構成を作成します。次に、カウンターを追加し、サンプリングレート、ログ形式(バイナリまたはプレーンテキスト)、およびログの場所を指定できます。

于 2008-09-16T04:36:46.750 に答える
47

Process Explorerは、プロセスにかかった合計CPU時間と、プロセスごとの履歴グラフを表示できます。

于 2008-09-16T04:19:46.573 に答える
24

perfmon.exeを使用して、メモリ使用量を追跡するために「プロセス」カウンターの下にある「プライベートバイト」カウンターを使用してみましたが、うまく機能します。

于 2011-11-04T15:58:46.480 に答える
11

多分あなたはこれを使うことができます。それはあなたのために働くはずであり、指定されたプロセスのプロセッサー時間を報告します。

@echo off
: Rich Kreider <rjk@techish.net>
: report processor time for given process until process exits (could be expanded to use a PID to be more
: precise)
: Depends:  typeperf
: Usage:  foo.cmd <processname>

set process=%~1
echo Press CTRL-C To Stop...
:begin
for /f "tokens=2 delims=," %%c in ('typeperf "\Process(%process%)\%% Processor Time" -si 1 -sc 1 ^| find /V "\\"') do (
if %%~c==-1 (
goto :end
) else (
echo %%~c%%
goto begin
)
)

:end
echo Process seems to have terminated.
于 2012-05-09T11:41:10.100 に答える
7

同意します。perfmon.exeを使用すると、監視するプロセスのカウンターを追加できます(右パネルを右クリック)。

パフォーマンスオブジェクト:プロセス「リストからインスタンスを選択」をチェックし、Firefoxを選択します。

于 2008-09-16T04:22:50.250 に答える
6

WMIはWindowsManagementInstrumentationであり、最近のすべてのバージョンのWindowsに組み込まれています。これにより、CPU使用率、ディスクI / O、メモリ使用率などをプログラムで追跡できます。

Perfmon.exeは、このインターフェイスのGUIフロントエンドであり、プロセスを監視し、ログに情報を書き込み、事後にログを分析できるようにします。これは世界で最もエレガントなプログラムではありませんが、仕事を成し遂げます。

于 2008-09-16T04:25:12.303 に答える
3

Process Lasso は、グラフではなく、プロセスの自動化と優先クラスの最適化のために設計されています。とはいえ、プロセスごとの CPU 使用率の履歴 (グラフに白い線で描かれています) は提供されますが、プロセスごとのメモリ使用率の履歴は提供されません。

免責事項: 私は Process Lasso の作成者ですが、実際にここでそれを支持するわけではありません。より良い解決策があるためです (perfmon が最適です)。

これまでで最高のものは、Windows Vista+ リソースおよびパフォーマンス モニターです。プロセスによる CPU、メモリ、ネットワーク、およびディスク アクセスの使用状況を経時的に追跡できます。これは、ずっと前に作成されるべきであった優れた全体的なシステム情報ユーティリティです。私が間違っていない限り、プロセスごとの CPU とメモリの使用率を経時的に追跡できます (他にもリストされています)。

于 2010-09-26T15:59:58.593 に答える
2

私はこれを試していませんが、ProcDumpはより良い解決策のようです。

サイトからの説明:

ProcDumpはコマンドラインユーティリティであり、その主な目的は、アプリケーションのCPUスパイクを監視し、スパイク中にクラッシュダンプを生成することです。これを使用して、管理者または開発者がスパイクの原因を特定できます。ProcDumpには、ハングしたウィンドウの監視(Windowsおよびタスクマネージャーが使用するのと同じウィンドウハングの定義を使用)、未処理の例外監視が含まれ、システムパフォーマンスカウンターの値に基づいてダンプを生成できます。また、他のスクリプトに埋め込むことができる一般的なプロセスダンプユーティリティとしても機能します。

于 2013-01-07T12:54:18.343 に答える
1

うーん、グラフはあまり便利ではありませんが、ProcessExplorerで実行できるようですそれを行うための代替/より良い方法をまだ探しています。

于 2008-09-16T04:17:26.207 に答える
1

Perfmon.exeはウィンドウに組み込まれています。

于 2008-09-16T04:17:39.323 に答える
1

ProcessLassoをご覧になることをお勧めします。

于 2008-09-16T04:32:31.550 に答える