如何测量进程使用的内存?进程很快就会退出,所以顶级公用程序无用。我尝试使用valgrind的地块,但它只测量通过malloc/new + stack分配的内存,而不是例如静态变量。 - 页面作为堆并没有帮助,因为它也显示映射的内存。Linux进程分配的内存使用情况
0
A
回答
1
可能对你有用的东西是使用一个脚本,它会在程序启动后立即反复运行'ps'。我已经编写了以下适用于您的目的的脚本,只需将顶部的变量替换为具体的细节。它当前在后台运行“netstat”(注意&符号),并在样本之间以0.1秒的间隔对存储器进行10次采样,并将存储器检查的结果写入文件。我已经在cygwin上运行了它,它可以工作(减去-o rss,vsz参数),我目前没有访问linux机器的权限,但如果由于某种原因它不能立即适应,它应该很容易适应工作。
#! /bin/bash
saveFileName=saveFile.txt
userName=jacob
programName=netstat
numberOfSamples="10"
delayBetweenSamples="0.1"
saveFileName=saveFile
i="0"
$programName &
while [ $i -lt $numberOfSamples ]
do
ps -u $userName -o rss,vsz | grep $programName >> $saveFileName
i=$[$i+1]
sleep $delayBetweenSamples
done
如果你的程序完成如此之快,在脚本执行它,并运行ps之间的延迟过长,你可能会考虑延迟运行程序,并使用了非常高的采样率,试图抓住它。你可以通过使用'睡眠'和两个&符号来实现,如sleep 2 && netstat
。这将等待2秒钟,然后运行netstat。
如果这听起来不错,也许尝试在调试器中运行您的程序。我相信gdb有一些内存跟踪选项,你可以看看。
相关问题
- 1. Linux内存使用情况
- 2. Windows vs Linux的内存使用情况
- 3. 在linux中为进程分配内存
- 4. 将影响Java内存使用情况的Linux配置?
- 5. 如何在不分配内存的情况下测量.net应用程序的内存使用情况?
- 6. 用于记录linux进程的cpu和内存使用情况的shell脚本
- 7. 在Linux中监视程序的内存使用情况
- 8. 使用本机进程的Java内存使用情况
- 9. 进程的内存分配
- 10. Java中线程或进程的内存使用情况
- 11. 分析Redis内存使用情况
- 12. 如何分析内存使用情况?
- 13. 使用进程ID获取进程的实际内存使用情况
- 14. 测量分布式应用程序的内存使用情况
- 15. Python - 在窗口中获取进程名称,CPU,内存使用情况和峰值内存使用情况
- 16. 监视子进程的内存使用情况
- 17. 监控进程的CPU和内存使用情况
- 18. 检查Python中子进程的内存使用情况
- 19. 预测进程的内存使用情况
- 20. 如何获得已启动进程的内存使用情况
- 21. 如何优化php进程的内存使用情况?
- 22. Linux内存使用率高时Linux进程释放内存?
- 23. 内存使用情况
- 24. iphone内存使用情况
- 25. Tcl_Format内存使用情况
- 26. Silverlight内存使用情况
- 27. IronPython内存使用情况
- 28. Java内存使用情况
- 29. V8内存使用情况
- 30. Listview内存使用情况
看这里http://unix.stackexchange.com/questions/21836/how-to-find-out-total-memory-resource-usage-with-ps – LibertyPaul
你没看过这个问题吗?我不能使用ps,进程快速终止 –
嗨Jani,我的答案是否在为你工作?我真的很想知道你是否需要更多的帮助。 –