【问题标题】:Measure memory usage of a process in Cocoa/Objective-C?在 Cocoa/Objective-C 中测量进程的内存使用情况?
【发布时间】:2011-10-09 10:16:01
【问题描述】:

我想制作一个能够显示 Google Chrome 使用的 RAM 量的程序。 Chrome 为每个选项卡和每个插件/扩展程序(基本上)使用一个进程,因此您无法通过活动监视器了解它占用的 RAM 量。

我的想法是给程序命名进程(Chrome),它会搜索每个子进程。然后我将添加所有父进程占用的内存量以获得我的答案。

问题是:我找不到一个可以给我一个进程占用的内存量的类。

我找到了一种从应用程序名称中获取 PID 的方法(反之亦然),示例代码 PIDFromBSDProcessName 用 C 编写。但我在 NSRunningApplication 和 NSTask 中都找不到内存NSWorkSpace 类。

【问题讨论】:

    标签: objective-c cocoa memory process


    【解决方案1】:

    一个问题是,应用程序很难检测到的各个进程之间可能存在一些共享内存。此外,如果它将书签/历史 DB 之类的文件也映射到内存中,看起来就像是普通内存一样,那么这样的工具就会非常不准确。

    【讨论】:

    • 我知道,这只是一个练习 Cocoa 和 Objective-C 的诀窍。我想制作一个工具来显示 Chrome 占用的内存量,即使它并不完全准确,有一个应用程序说“Chrome 使用 1200 Mo 内存”会很棒,即使它“只”使用 1100月。
    猜你喜欢
    • 2010-12-25
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    相关资源
    最近更新 更多