如何在Shell脚本循环中使用Shark在Mac上配置C程序?

时间:2010-03-25 04:36:18

标签: macos profiling shark

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

说我是否有一个C编程,编译时使用:

gcc -o mycprog mycprog.c -g -pg

我还有一个shell脚本:

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

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

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

1 个答案:

答案 0 :(得分: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