活动监视器中的示例进程功能非常有用。但是,我需要从另一个正在运行的进程 (C/C++) 或命令行对某个进程执行相同的操作(采样)。

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

有帮助吗?

解决方案

有一个命令行实用程序 sample.

例子:

sample Safari -file /dev/stdout

它将获得与活动监视器完全相同的输出。

其他提示

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

如果你想编写自己的程序,你可以使用 sysctl 系统调用 以获得此类信息。然而,这是相当乏味的。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top