在Linux中监视程序的内存使用情况

编程之家收集整理的这篇文章主要介绍了在Linux中监视程序的内存使用情况编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

在Linux中监视程序的内存使用情况

linux中是否有可用的graphics或文本显示程序的内存使用情况的工具? 例如,如果我编写一个C ++程序,并想valIDation对象在内存中是否正确分配和释放,是否有可用的应用程序可视化显示正在实例化和删除的对象? 当我用Visual Studio进行编程时,我记得单步执行一个程序并使用deBUGging窗格来监视内存使用情况,并且正在寻找类似于linux的东西。

移动内存页面比mremap()更快的方法

bash在通过一对文件迭代大约3600万行之后返回错误的结果 – 这是内存错误吗?

设备内存空间中的cuda程序内核代码

linux中的硬盘已满时,fwrite不会返回0为什么?

读取文件到内存最快的技术?

这不是你正在寻找的东西,而是看看Valgrind 。

我通常运行顶部来关注整体内存使用情况。

while (/proc/<pID>/status) echo "VMSize: `ps -p <pID> -o vsize=`" >> ! mem.out pstack <pID> >> mem.out sleep 10 end

grep VMSize mem.out | awk -F':' '{print $2}' | sort -r -n | head -1 grep VMSize mem.out | awk -F':' '{print $2}' | sort -r -n | head -1会给你高峰记忆。

还可以使用mem.out查看内存占用情况和当前的堆栈关联。

计算一个进程在支持虚拟内存的操作系统使用多少内存是非常困难的。

问题并不在于它使用了多少内存,而是多少是私有的,多少是共享的。

你可以看看/ proc / pID / maps或/ proc / pID / smaps(也许)。 这些文件只会告诉你这个进程已经映射到了它的地址空间中的内存了多少,而不是它使用了多少,而且绝对不会与系统中的其他进程共享多少内存。

即使是“私人”地图也可以被共享,因为fork()是在写时拷贝的,所以一个私人页面仍然可以与其他一些(相关 – 通常是父级或兄弟)进程共享。 而且,已经映射但从未使用页面根本不会消耗空间。

可以看到每个映射的RSS(ResIDent Set Size),但是这只能告诉你有多少是驻留的(在RAM中,而不是交换到一个交换文件中,还没有分配,还是没有从映射中加载需求文件),现在共享多少,用什么。

我想你最好的办法是统计私人匿名记忆的数量,这在某些情况下可能是好的。

1)首先运行

ps -u <your user ID>

2)从1)的输出获取您要监控的进程的PID

3)然后运行

top -p <the pID of the process you want to monitor>

conky( 屏幕截图 )是一个非常简单的计算机资源查看器张贴在桌面壁纸。 我留意内存的使用和特定的程序使用

总结

以上是编程之家为你收集整理的在Linux中监视程序的内存使用情况全部内容,希望文章能够帮你解决在Linux中监视程序的内存使用情况所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

Git文章

从4个不同的小鼠input
丢失本地主机networking连接的可能性?
设备创build期间的DirectX 11 E_INVALIDARG
如何将Flash游戏embedded到Windows Mobile应用程序中
安装应用程序以使用Wix在Windows关机时运行
拆分多页PDF文件到单个页面
PHP不被识别为内部命令(在Windows中)
Shell脚本:使用variables来定义path
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注