技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

定期的にメモリ量を取得する。

引数で指定されたPIDを持つプロセスのメモリ量を定期的に出力するbatファイルを作成した。

getMem.bat

@echo off

set pid=%1

:loop
    set /p=%date% %time% <nul,
    tasklist /fo csv /fi "pid eq %pid%" /nh
    timeout 60 > nul
 
goto :loop

メモリ量を取得したいプロセスのPIDを引数にして、例えば、

getMem.bat 9928

と実行すると、以下のように60秒間隔で対象プロセスのメモリ量を取得する。(メモリ値は最後のカラム)

2018/09/17 19:14:51.17 ,"chrome.exe","9928","Console","1","198,056 K"
2018/09/17 19:15:51.16 ,"chrome.exe","9928","Console","1","198,864 K"
2018/09/17 19:16:51.15 ,"chrome.exe","9928","Console","1","198,452 K"
2018/09/17 19:17:03.80 ,"chrome.exe","9928","Console","1","198,784 K"
・・・

上記ようにcsv 形式で出力しているので、これをエクセルで開けばグラフが簡単に描ける。メモリリークの調査などに使用すると便利だと思う。