有没有办法知道各个线程各自占用的内存?

daehappy 2003-12-12 05:19:48
我的程序有两个thread,所以用top命令观察的时候,能看到属于该程序的有两行。但是两行的RSS以及%MEM都显示一样的数字(比如是55M),而%CPU则是两个不同的数字。

我想这是因为top显示的%MEM是程序所使用MEM的总和,而不是两个线程各自占用的内存。

各位大侠有什么方法能显示各自thread所占用的内存吗??
...全文
187 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
rexp 2003-12-24
  • 打赏
  • 举报
回复
对牛牛的说法我比较关注,不过不是很了解,据我所知,2.4内核中是用进程模拟的,也可能是2.4内核中比较新的版本不是这样的。不过rh8以后的好像用ps是看不到线程了。
linaxing 2003-12-24
  • 打赏
  • 举报
回复
版本稍老一点的linux是用进程模拟线程,所以每个线程也有pid,也可以分别看到其各自
的情况,最新版的已经改了,看不到了。
onlymilan 2003-12-23
  • 打赏
  • 举报
回复
父、子进程是相互独立的,各自有自己不同的pid,可以看到各自占用的内存大小
daehappy 2003-12-15
  • 打赏
  • 举报
回复
是不是 用 fork 出来的子进程就可以看到各自占用的内存大小?
chenzhangf 2003-12-15
  • 打赏
  • 举报
回复
没办法显示各自占用的内存。
onlymilan 2003-12-14
  • 打赏
  • 举报
回复
所有线程的stack(栈区)是相互独立的,父进程和所有线程的stack(栈区)也是相互独立的

data(数据区)、code(代码区)、heap(堆区)是父进程和所有线程共享的
ark13 2003-12-13
  • 打赏
  • 举报
回复
同意楼上
rexp 2003-12-12
  • 打赏
  • 举报
回复
一个进程派生的所有线程占用了同一个地址空间,使用的内存当然是一样的。怎么能够区分开呢?

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧