0

我对 Mac 上的 Shark-profiling 有疑问。

假设我有一个 C 程序,编译为:

gcc -o mycprog mycprog.c -g -pg

而且我还有一个shell脚本,例如:

for file in ($SomeDirectory)
do
    mycprog $file
done

我需要分析 $SomeDirectory 中所有文件的平均性能。

我应该把shark -i命令放在哪里?谢谢。

4

1 回答 1

0

由于各种原因,这不是一个好方法 - 理想情况下,您应该修改程序的外循环,以便它可以处理命令行上的所有文件,然后您可以在一次运行中完成所有操作:

$ shark -i
$ mycprog $SomeDirectory/*

如果你不能这样做,那么你需要为系统范围的分析设置你的 Shark 配置,并在你的 bash 循环之前开始分析,然后停止分析。当您随后在 Shark 中查看配置文件时,您将能够过滤掉您不感兴趣的进程。

首先打开 Shark(GUI 应用程序),设置您的配置并启用远程控制 ( Sampling=> Programmatic)。确保你有Time ProfileEverything选择了。

然后从命令行:

$ chudRemoteCtrl -s "mycprog"
$ sleep 1
$ for f in $SomeDirectory/*
$ do
$     mycprog $SomeDirectory/$f
$ done
$ chudRemoteCtrl -e
于 2010-03-25T06:58:46.207 回答