可以通过在编译器中添加 -fprofile-arcs 和 -pg 选项来启用代码覆盖率检测和性能分析,并使用 gprof 或 perf 工具生成火焰图进行比较。例如,在使用 GCC 编译 C++ 代码时,可以使用以下命令:
g++ -fprofile-arcs -pg your_code.cpp -o your_program
./your_program
gprof your_program > profile.txt
生成的 profile.txt 文件中包含了函数调用的层级信息和时间统计,可以使用第三方工具将其转换为火焰图。
类似地,使用 perf 工具也可以进行性能分析并生成火焰图:
g++ -fprofile-arcs your_code.cpp -o your_program
perf record ./your_program
perf report --sort=comm,dso,symbol
生成的 perf 结果中也包含了函数调用层级信息和时间统计,可以使用 perf script 和 FlameGraph 工具生成火焰图。