繁体   English   中英

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

[英]How to Profile a C-Program in a Loop of Shell Script, Using Shark on Mac?

我有一个关于在Mac上进行Shark分析的问题。

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

gcc -o mycprog mycprog.c -g -pg

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

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

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

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

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

$ shark -i
$ mycprog $SomeDirectory/*

如果无法执行此操作,则需要设置Shark配置以进行系统范围的分析,并在bash循环之前开始分析,然后再停止分析。 当您随后在Shark中查看配置文件时,将能够过滤掉您不感兴趣的流程。

首先打开Shark(GUI应用程序),设置配置并启用远程控制( Sampling => Programmatic )。 确保已选择“ Time Profile和“ Everything

然后从命令行:

$ chudRemoteCtrl -s "mycprog"
$ sleep 1
$ for f in $SomeDirectory/*
$ do
$     mycprog $SomeDirectory/$f
$ done
$ chudRemoteCtrl -e

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM