仅使用Objective-C程序的空闲CPU时间

时间:2011-01-13 12:00:32

标签: objective-c

BOINC客户端(像SETI @ home那样执行分布式处理工作)能够根据其他进程是否正在使用一定比例的CPU时间来打开或关闭处理。也就是说,如果用户开始做一些工作并且他们的进程开始使用60%CPU,BOINC可以暂停以避免干扰用户的工作。

我想做同样的事情(监视其他进程的CPU使用情况)。我看到的困难不是监控CPU使用情况,而是确保信息不会因我自己的使用而受到影响。例如,如果我的进程使用了​​大量的CPU时间,则可能会阻止其他进程使用足够的时间来触发暂停。

有人能指出我正确的方向吗?即使是搜索什么的建议也会有用。我不确定这个功能会被称为什么。

1 个答案:

答案 0 :(得分:0)

您可以使用NSTask在流程启动时设置流程的“nice”值。

另外[[NSThread mainThread] setThreadPriority:0.0]

其中优先级值介于0.0和1.0之间是一个Cocoa API,它可以帮助您避免使用sudo进行欺诈