9

tasklistどのプロセスが CPU の X パーセントを超えて消費しているかを調べるために使用しようとしています (後で で強制終了しtaskkillます)。

時間形式が何パーセントを表しているかを知るにはどうすればよいですか?

ドキュメントには次のように書かれています:

TASKLIST options

/FI   filter               

1 つのフィルターは次のようになります。

CPUTIME         eq, ne, gt, lt, ge, le        CPU time in the format: hh:mm:ss.
                                              hh - number of hours,
                                              mm - minutes, ss - seconds

私が試したら

tasklist /FI "CPUTIME gt 00:00:10" 

できます。

しかし、もし私が

tasklist /FI "CPUTIME gt 90"

そうではありません。

時刻形式が 90% を表していることをどのように知ることができますか? それとも80%?CPU 使用時間と CPU 使用率の関係は?

4

3 に答える 3

18

tasklist でこれを行う簡単な方法があるようには見えないので、VBscript または別のスクリプト言語でこれを行うか、別のアプローチを使用することをお勧めします。バッチ ファイルに制限されている場合は、WMICコマンドを使用して、実行中のプロセスのリストとそれぞれの CPUTime を取得できます。

C:\> wmic path Win32_PerfFormattedData_PerfProc_Process get Name,PercentProcessorTime

Name                 PercentProcessorTime
Idle                 0
System               0
Smss                 0
csrss                0
winlogon             0
services             0
lsass                0

[...]

wmiprvse             100
wmic                 0
_Total               100

私のテストでは、wmipsrv.exe の CPU が 100% であることが示されました。これは、WMI クエリの実行中にスパイクが発生したためです。スクリプトでそれを説明する必要があります。そうしないと、WMI サービスを常に強制終了しようとすることになります ;)

参照:
http://waynes-world-it.blogspot.com/2008/09/useful-general-command-line-operations.html
http://technet.microsoft.com/en-us/library/bb742610.aspx

于 2008-10-16T04:18:13.483 に答える
-3

TasklistのCPUTimeは、プロセスの開始以降に使用されたCPU時間(サイクル)の測定値であるため、これをパーセントに変換すると、次のようになります。

 (TotalProcessRuntime / CpuTime) / 100

少なくとも、それは私が集めるものです:)

于 2008-10-15T23:27:36.360 に答える