【问题标题】:Calculating Per Process Memory Usage on MacOS在 MacOS 上计算每个进程的内存使用量
【发布时间】:2018-05-27 11:57:39
【问题描述】:

我目前正在从事一个小型项目,我想在每个进程级别添加一些关于 CPU 使用率/内存使用率/打开的 FD 等的统计信息。

我的 CPU 使用率正常,但我遇到的问题是内存。我在进程信息部分找不到任何用于检索或计算内存使用情况的 API,类似于“活动监视器”的操作方式。

哪些 API 可用于计算“真实/虚拟/共享/私有”内存使用量?我已经使用了 host_statistics() ,但是这只给了我所知道的基本 VM 信息。我也研究了 task_info() 但这似乎也没有我正在寻找的内存崩溃。

【问题讨论】:

    标签: macos memory-management cpu-usage macos-sierra darwin


    【解决方案1】:

    Apple 提供source code for the top utility。至少,这应该可以帮助您弄清楚如何访问它显示的所有进程信息。这确实包括一堆不同的内存统计信息。

    【讨论】:

    • 我开始看这个,但我不清楚他们如何计算进程的私有/共享内存值。
    • 从头开始。找到处理私有/共享计算的代码部分。原来你需要使用 mach_vm_region() 遍历你的虚拟内存区域。
    • 这听起来很对。我想这不是 100% 可靠的,因为该过程可以在您行走时修改其区域,但出于显示统计信息的目的,它应该就足够了。 (对不起,顺便说一句,我没有提供完整的答案,但我不知道细节,也没有时间自己研究,所以我想为你指明我开始的方向是总比没有好!)
    • 不用担心。它至少证实了我在我应该寻找的正确道路上。
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 2016-10-21
    • 1970-01-01
    • 2011-07-01
    相关资源
    最近更新 更多