objective-c - 如何使用 Objective-C 获取正在运行的进程

标签 objective-c multithreading cocoa operating-system macos

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

有人可以给我一些建议或例子吗?我在网上搜索了一下,但没有找到任何东西。

最佳答案

你问的实际上一点也不简单。

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

但问题是,您需要获取某个时间窗口内的平均 CPU 使用情况,并对多个样本进行平均,这可能会丢弃超出某个标准差的样本。

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

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

关于objective-c - 如何使用 Objective-C 获取正在运行的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7233455/

相关文章:

java - 为什么没有将操作结果放在并发 HashMap 上? putIfAbsent 的用例是什么?

java - 任务执行并等待任务完成 : Java

c - 需要帮助了解如何在读取单个目录时使用线程

cocoa - Swift 绑定(bind) KVO/KVC 问题

objective-c - 在Rust中使用Objective-C时管理 cocoa 内存的正确方法

ios - 将元数据内容作为文件读取和写入文档目录中

objective-c - NSMutableArray 没有可见接口(interface)声明选择器 ReplaceObjectAtIndex :

objective-c - 试图将 UIActivityIndi​​catorView 添加到 View 中,但不起作用

ios - Xcode 如何加载主 Storyboard ?

cocoa - 将 NSGradient 转换为 NSColor