也许矫kill过正,但我刚刚发现它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
该选项,因此已考虑到它们的内存占用量!
./tstime -t bash -c 'perl -e "\$a=\"x\"x100000000;\$b=\$a.\$a;\$b=\"\";\$a=\"\";sleep 10;"'