time
特定の命令が消費するCPU時間を計算する場合は、これは優れた命令です。
私は、プログラムとすべての子供の最大RAM使用量を測定することができる同様のものを探しています。使用されているメモリと未使用の割り当てメモリを区別することが望ましいです。たぶん、中央値のメモリ使用量(したがって長期的に予想されるメモリ使用量)を提供することもできます。
だから私はしたいと思います:
rammeassure my_program my_args
次のような出力を取得します。
Max memory allocated: 10233303 Bytes
Max memory used: 7233303 Bytes
Median memory allocation: 5233303 Bytes
私は見たことがないmemusg
https://gist.github.com/526585/590293d6527c91e48fcb08edb8de9fd6c88a6d82しかし、私の考えは少しハッキングに似ていると思います。
答え1
time
シェルに組み込まれたコンポーネントです。より多くの情報が必要time
ですが、詳細情報が必要な場合は、time
詳細情報表示(-v
)モードを使用してGNUを試してください。
/usr/bin/time -v sleep 5
Command being timed: "sleep 5"
User time (seconds): 0.00
System time (seconds): 0.00
Percent of CPU this job got: 0%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:05.00
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 2144
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 179
Voluntary context switches: 2
Involuntary context switches: 1
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
パッケージマネージャで「time」または「gnutime」パッケージを検索してください。
答え2
あなたはそれを使用することができます時間プロセス(RSSと仮想)の高透かしメモリ使用量を測定します。
たとえば、
$ tstime date
Tue Aug 16 21:35:02 CEST 2011
Exit status: 0
pid: 31169 (date) started: Tue Aug 16 21:35:02 2011
real 0.017 s, user 0.000 s, sys 0.000s
rss 888 kb, vm 9764 kb
また、解析しやすい出力モード(-t
)もサポートしています。
答え3
少し過剰かもしれませんが、ちょうどvalgrind
テストmassif
したxterm
。
valgrind --trace-children=yes --tool=massif xterm
ms_print massif.out.* | less
メモリ使用量の素晴らしいグラフを得ることができます。
MB
4.230^ # ::::::: ::: @@: :::
| @ #:::@::@@:::::@::::::: :: : ::: :::::::@ ::::::: ::
| @ ::#:: @: @ ::: :@: :: :: :: : ::: ::: : :@ :: : :: ::
| @::::@@:::::::::: #:: @: @ ::: :@: :: :: :: : ::: ::: : :@ :: : :: ::
| @::: @ :: ::: : : #:: @: @ ::: :@: :: :: :: : ::: ::: : :@ :: : :: ::
| @::: @ :: ::: : : #:: @: @ ::: :@: :: :: :: : ::: ::: : :@ :: : :: ::
| @::: @ :: ::: : : #:: @: @ ::: :@: :: :: :: : ::: ::: : :@ :: : :: ::
| @::: @ :: ::: : : #:: @: @ ::: :@: :: :: :: : ::: ::: : :@ :: : :: ::
| @::: @ :: ::: : : #:: @: @ ::: :@: :: :: :: : ::: ::: : :@ :: : :: ::
| @::: @ :: ::: : : #:: @: @ ::: :@: :: :: :: : ::: ::: : :@ :: : :: ::
0 +----------------------------------------------------------------------->Mi
0 292.4
過度に詳細なメモリ使用量情報。詳しくはValgrind マニュアル。
ただし、プログラムは約20倍遅く実行されます。しかも私は。オプションがあるxterm
のでメモリ使用量も考慮しました!--trace-children=yes
答え4
tstimeは、Linux> = 3.0のルート以外のユーザーでは動作しなくなったようです。この問題を解決するために私が書いたポーリングユーティリティは次のとおりです。https://github.com/jhclark/memusg/blob/master/memusg