我必须开发一个监控特定进程的Cocoa程序。如果该过程低于CPU使用率的50%,我必须向管理员发送电子邮件。当然,这将是Mac OS X应用程序。
有人给我提示或示例吗?我在网上搜索,但没有找到任何东西。
答案 0 :(得分:3)
你所问的实际上并不简单。
正如CajunLuke所说,你会想要利用系统的POSIX基础。
但问题是,您需要在某个时间窗口内取平均CPU使用率,并对多个样本中的平均值进行平均,否则可能会丢弃超出某些标准偏差的样本。
问题是CPU使用样本必然是一段时间内的平均值,如果那段时间非常短,那么偶尔会看到样本非常低(或高)。
从开源存储库获取top
命令的源代码(我相信top
将在Darwin OSS版本中)并查看它。
答案 1 :(得分:1)
由于Objective-C是C的超集,因此您可以使用在Linux或其他UNIX上使用的任何标准POSIX C方法。
一种方式(不是一种好方法)是呼叫ps
或top
然后处理结果。
如果您有* nix应用程序或脚本已经执行此操作,它应该只在OS X上重新编译。