在LINUX中处理工作集信息

Process Working Set Info in LINUX

本文关键字:工作集 信息 处理 LINUX      更新时间:2023-10-16

我正在尝试获取在LINUX上运行的C++应用程序中给定PID的内存工作集值。在Windows中,我可以使用GetProcessWorkingSetSize函数获取这些信息。在LINUX中,有什么类似的函数可以调用吗?

想到的唯一合理的解决方案是通过/proc文件系统访问相关信息。不过,进程必须从/proc中读取自己的信息似乎很奇怪,但我不知道还有什么其他系统调用可以让这更容易。

您可能最感兴趣的信息位于/proc/[pid]/statm中,其中包括:

  • 总程序大小
  • 驻留集大小
  • 共享页面
  • 文本(代码)大小
  • 库(在Linux 2.6中未使用)
  • 数据和堆栈大小
  • 脏页(在Linux 2.6中未使用)

请记住,所有这些测量都是以页数表示的。