如何在 Mac 上使用 Shark 在 Shell 脚本循环中分析 C 程序?
我有一个关于 Mac 上 Shark 分析的问题。
假设我有一个 C 程序,编译为:
gcc -o mycprog mycprog.c -g -pg
并且我还有一个类似于以下内容的 shell 脚本:
for file in ($SomeDirectory)
do
mycprog $file
done
我需要分析 $SomeDirectory 中所有文件的平均性能。
我应该将 shark -i
命令放在哪里?谢谢。
I have a question about Shark-profiling on mac.
Say if I have a C-program, compiled with:
gcc -o mycprog mycprog.c -g -pg
and also I have a shell script something like:
for file in ($SomeDirectory)
do
mycprog $file
done
I need to profile the average performance for all files in $SomeDirectory.
Where should I put the shark -i
command? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于各种原因,这不是一个好方法 - 理想情况下,您应该修改程序的外循环,以便它可以处理命令行上的所有文件,然后您可以在一次运行中完成所有操作:
如果您不能这样做,那么您需要为系统范围的分析设置 Shark 配置,并在 bash 循环之前开始分析,然后停止分析。当您随后在 Shark 中查看配置文件时,您将能够过滤掉您不感兴趣的进程。
首先打开 Shark(GUI 应用程序),设置您的配置并启用远程控制(
Sampling => <代码>编程)。确保您已选择
时间配置文件
和一切
。然后从命令行:
This is not a great approach, for various reasons - ideally you should modify your program's outer loop so that it can process all the files on the command line, then you can just do everything in one run:
If you can't do that then you will need to set your Shark configuration for system-wide profiling and start profiling before your bash loop and stop profiling afterwards. When you subsequently view the profile in Shark you'll be able to filter out the processes that you're not interested in.
Firstly open Shark (the GUI app), set up your configuration and enable remote control (
Sampling
=>Programmatic
). Make sure you haveTime Profile
andEverything
selected.Then from the command line: