【问题标题】:How to get running process with Objective-C如何使用 Objective-C 运行进程
【发布时间】:2011-11-06 04:50:28
【问题描述】:

我必须开发一个可监控特定进程的 Cocoa 程序。如果该进程的 CPU 使用率低于 50%,我必须向管理员发送电子邮件。当然,这将是一个 Mac OS X 应用程序。

有人对我有提示或示例吗?我搜索了网络,但没有找到任何东西。

【问题讨论】:

    标签: objective-c multithreading cocoa operating-system macos


    【解决方案1】:

    你问的其实一点都不简单。

    正如 CajunLuke 所说,您需要利用系统的 POSIX 基础。

    但问题是,您需要获取某个时间窗口内的平均 CPU 使用率,并在多个样本中取平均值,这可能会丢弃超出某个标准偏差的样本。

    问题在于 CPU 使用样本必然是一段时间内的平均值,如果这段时间真的很短,那么您偶尔会看到非常低(或高)的样本。

    从开源存储库中获取top 命令的源代码(我相信top 将包含在 Darwin OSS 版本中)并查看一下。

    【讨论】:

      【解决方案2】:

      由于 Objective-C 是 C 的超集,您可以使用任何标准 POSIX C 方法在 Linux 或其他 UNIX 上执行此操作。

      一种方法(不是好方法)是调用pstop,然后处理结果。

      如果您已经有一个 *nix 应用程序或脚本可以执行此操作,它应该可以在 OS X 上重新编译。

      【讨论】:

        猜你喜欢
        • 2010-12-13
        • 2011-10-19
        • 2012-05-06
        • 1970-01-01
        • 1970-01-01
        • 2011-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多