【问题标题】:Total/Free virtual memory for a single process in LinuxLinux 中单个进程的总/可用虚拟内存
【发布时间】:2015-08-16 01:11:34
【问题描述】:

我需要监控:

  • 物理内存
  • 交换内存
  • 虚拟内存

对于当前进程。总计和可用(免费)。

我使用sysinfo stucture 获得的物理和交换没有任何问题,我可以从 e.x. /proc/self/statm...

...但我仍然需要当前进程的全部和/或空闲虚拟内存。如何做到这一点?

这纯粹是与 Linux 相关的问题(在 Win 中很容易)。使用的发行版:Ubuntu、Fedora。

编辑: 也许更容易理解我的问题,当我说我试图在 Linux 系统上从 Windows MEMORYSTATUSEX structureGlobalMemoryStatus() 获取 ullTotalVirtualullAvailVirtual 的等价物时。

【问题讨论】:

  • 请仔细阅读,不要随意给出链接。我确实有实际的虚拟内存使用情况。我需要的是进程的总虚拟内存(空闲+已用)或进程的可用虚拟内存(空闲)。
  • “进程的可用虚拟内存”是什么意思?内部分配器中的松弛空间?过度使用 mmap 地址空间?什么?
  • ullAvailVirtual The amount of unreserved and uncommitted memory currently in the user-mode portion of the virtual address space of the calling process, in bytes.

标签: c++ linux memory virtual


【解决方案1】:

几周前发布了以下小型库:https://sourceforge.net/projects/meminfo/

也许它有助于解决您的问题

【讨论】:

  • 不幸的是,这也与内存使用有关,这不是我想要的。它使用/proc/self/smaps
  • 那么您到底在寻找什么?您为当前进程编写了物理、交换和虚拟内存。
  • 这不是一个简单的问题,所以仔细阅读问题是非常重要的。我写的有问题:但我仍然需要当前进程的全部和/或可用虚拟内存。如何做到这一点?
  • @MKK 已经有一段时间了,你找到答案了吗?我正在寻找相同的内容,但在网络上当前进程的总和/或可用虚拟内存中找不到任何内容。
猜你喜欢
  • 1970-01-01
  • 2013-12-13
  • 2021-07-25
  • 1970-01-01
  • 2020-05-21
  • 1970-01-01
  • 2023-03-28
  • 2011-09-09
  • 1970-01-01
相关资源
最近更新 更多