该time
命令对于检查我开发的一段代码运行需要多少时间非常有用...但是,我也希望有一种方法来检查我开发的代码的内存消耗,无论我使用的语言。所以,如果是bash
,,python
或者node.js
......我想有一种方法来检查我在代码上使用了多少RAM内存,这样我就可以更多地了解我在做什么,避免内存重复和类似的东西。是否有任何命令行可用于检查我创建的脚本消耗的内存量?
答案1
在许多类 Unix 系统上,是的,GNU 的实现/usr/bin/time
(使用路径,以避免类似的 shell 内置)会告诉您给定程序执行使用了多少内存;例如:
$ /usr/bin/time ls
...
0.00user 0.00system 0:00.00elapsed 50%CPU (0avgtext+0avgdata 2208maxresident)k
0inputs+0outputs (0major+139minor)pagefaults 0swaps
显示ls
最多使用 2208K RAM。
其他工具如瓦尔格林德将显示更多信息,特别是有关堆使用情况的信息:
$ valgrind ls
...
==10107==
==10107== HEAP SUMMARY:
==10107== in use at exit: 32,928 bytes in 83 blocks
==10107== total heap usage: 506 allocs, 423 frees, 97,271 bytes allocated
==10107==
==10107== LEAK SUMMARY:
==10107== definitely lost: 0 bytes in 0 blocks
==10107== indirectly lost: 0 bytes in 0 blocks
==10107== possibly lost: 0 bytes in 0 blocks
==10107== still reachable: 32,928 bytes in 83 blocks
==10107== suppressed: 0 bytes in 0 blocks
==10107== Rerun with --leak-check=full to see details of leaked memory
==10107==
==10107== For counts of detected and suppressed errors, rerun with: -v
==10107== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)