从C / C ++程序在Mac OS X上对进程进行采样

时间:2009-12-31 20:16:53

标签: macos process terminal activity-monitor

Activity Monitor中的Sample Process功能非常有用。但是,我需要从另一个正在运行的进程(C / C ++)或命令行执行相同的操作(获取样本)。

有没有办法做到这一点?几天以来我一直在谷歌上搜索,没有任何运气。

2 个答案:

答案 0 :(得分:12)

有一个命令行实用程序sample

示例:

sample Safari -file /dev/stdout

它将与Activity Monitor获得完全相同的输出。

答案 1 :(得分:2)

有一些命令行应用程序派上用场:sampletop

如果您想编写自己的程序,可以使用sysctl system call获取此类信息。但是,这很乏味。

我建议安装procfs file system(使用MacFUSE构建)。这将在/proc创建一个新的“目录”,其中包含每个应用程序的大量有用信息(例如内存使用情况,CPU使用情况,锁,打开的文件,套接字,线程等)。该网站提供了如何访问它的示例。然后,您可以简单地编写对这些文件的访问权限。