aro*_*ooo 3 macos objective-c xcode4 osx-lion
现在我正在做这样的事情:
NSString *pullProcesses = @"ps axco pid,pcpu,user,command";
system([pullProcesses UTF8String]);
NSLog(pullProcesses);
Run Code Online (Sandbox Code Playgroud)
但它的效率有点低,每次调用它时会占用大约15%的CPU.我有没有有效的方法来获取进程列表和它使用的CPU数量?
此外,有没有办法将流程列表分解为仅属于用户且不是系统流程的流程?
我听说NSTask可能有用,但这不是检查所有用户的进程,只检查Dock中活动的进程.
我也在阅读有关NSWorkSpace的内容,但我不确定最好的方法是什么.
谢谢!
好吧,-[NSWorkspace runningApplications]它将为您提供由NSRunningApplication实例表示的用户进程列表.一个NSRunningApplication拥有processIdentifier财产,持有pid_t其进程,然后你可以传递给的ps-这可能是更有效的.
另请参阅 Apple的名为"AppList"的示例项目; 它演示了使用NSWorkspace和NSRunningApplication,虽然我不记得它是否显示CPU使用率.
| 归档时间: |
|
| 查看次数: |
2250 次 |
| 最近记录: |