本节提供一些使用 er_print 命令的示例。
示例 11 显示函数中时间花费情况的摘要er_print -functions test.1.er示例 12 显示调用方-被调用方关系
er_print -callers-callees test.1.er示例 13 显示热点源代码行
源代码行信息假设代码已使用 -g 进行编译和链接。将尾随下划线附加到 Fortran 函数和例程的函数名称。函数名称后的 1 用于区分 myfunction 的多个实例。
er_print -source myfunction 1 test.1.er示例 14 从用户函数堆栈过滤名为 myfunc 的函数:
er_print -filters 'FNAME("myfunc") SOME IN USTACK' -functions test.1.er示例 15 生成类似于 gprof 的输出
以下示例从实验生成一个类似 gprof 的列表。输出是一个名为 er_print.out 的文件,该文件列出前 100 个函数,后跟调用方-被调用方数据(按每个函数的归属用户时间排序)。
er_print -outfile er_print.out -metrics e.%user -sort e.user \ -limit 100 -func -callers-callees test.1.er
也可以将此示例简化为以下独立的命令。但是请记住,在大型实验或应用程序中对 er_print 的每次调用可能需要花费很长时间。
er_print -metrics e.%user -limit 100 -functions test.1.er
er_print -metrics e.%user -callers-callees test.1.er示例 16 仅显示编译器注释
无需运行程序即可使用此命令。
er_src -myfile.o示例 17 使用挂钟分析来列出函数和调用方-被调用方
er_print -metrics ei.%wall -functions test.1.er
er_print -metrics aei.%wall -callers-callees test.1.er示例 18 运行包含 er_print 命令的脚本
er_print -script myscriptfile test.1.er
myscriptfile 脚本包含 er_print 命令。脚本文件内容的样例如下:
## myscriptfile ## Send script output to standard output outfile - ## Display descriptive information about the experiments header ## Write out the sample data for all experiments overview ## Write out execution statistics, aggregated over ## the current sample set for all experiments statistics ## List functions functions ## Display status and names of available load objects object_list ## Write out annotated disassembly code for systime, ## to file disasm.out outfile disasm.out disasm systime ## Write out annotated source code for synprog.c ## to file source.out outfile source.out source synprog.c ## Terminate processing of the script quit