0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Tcl/TkAdvent Calendar 2021

Day 6

WindowsでTclスクリプトのメモリ使用量を調べる方法

Posted at

Tclスクリプトの特定の処理のメモリ使用量を調べたくて、Win32 APIを使う方法とか、WMIを使う方法とか、色々調べていたのですが、TWAPIパッケージのget_process_memory_infoメソッドが一番簡単でした。

The Tcl Windows API (TWAPI)

TWAPIはいくつかのWindows APIやWindowsに依存する処理を集めたパッケージです。

Win32 API関数を使いたい場合はサポートしていないものもあるので、Ffidlパッケージで悪戦苦闘しながら実装していましたが、Windows Management Instrumentation(WMI)を使う場合や、メモリ使用量の取得のような汎用的な情報取得に便利な機能が詰まっているようです。

メモリ使用量の取得

get_process_memory_infoメソッドでメモリ使用量に関する情報を取得できます。

package require twapi
array set process_memory_info [::twapi::get_process_memory_info]
parray process_memory_info

これを実行すると以下のようになります。

process_memory_info(-pagefaults)            = 8895
process_memory_info(-pagefilebytes)         = 20496384
process_memory_info(-pagefilebytespeak)     = 20496384
process_memory_info(-poolnonpagedbytes)     = 20496
process_memory_info(-poolnonpagedbytespeak) = 20496
process_memory_info(-poolpagedbytes)        = 261832
process_memory_info(-poolpagedbytespeak)    = 262008
process_memory_info(-privatebytes)          = 20496384
process_memory_info(-workingset)            = 34123776
process_memory_info(-workingsetpeak)        = 34127872

get_process_memory_info{key value key value ...}というリストで結果を返します。

リストから特定のkeyのvalueを取得する方法はいくつかありますが、ここでは一覧表示するのにparrayメソッドが簡便だったので、いったん配列にしました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?