gcc -pg用法 gcc -pg是一个用于生成性能分析文件的编译器选项。当使用此选项编译和链接程序时,编译器会将额外的代码插入到生成的可执行文件中,以便在程序执行过程中记录和收集性能数据。通过分析这些数据,可以了解程序的性能瓶颈,以便进行针对性的优化。 以下是使用gcc -pg选项的一般步骤: 1.编写源代码文件:创建一...
gcc -g -pg xxx.c g++ -g -pg xxx.cpp ./a.out gprof a.out gmon.out > report.txt Gprof 产生的信息解释: Call Graph 的字段含义: 注意: 程序的累积执行时间只是包括gprof能够监控到的函数。工作在内核态的函数和没有加-pg编译的第三方库函数是无法被gprof能够监控到的,(如sleep()等) Gprof 的具体...
# gcc -save-temps foo.c -o foo# ls foo*foo foo.c foo.i foo.s GCC 支持的其它调试选项还包括-p和-pg,它们会将剖析(Profiling)信息加入到最终生成的二进制代码中。剖析信息对于找出程序的性能瓶颈很有帮助,是协助Linux程序员开发出高性能程序的有力工具。在编译时加入-p选项会在生成的代码中加入通用剖...
在某些情况下,我们希望对C中的特定函数执行时间进行统计,当然比较简单的方法就是在这个需要进行profile的函数添加一个函数局部变量,并在构造和析构函数的时候的时间差来作为整个函数的执行时间。如果这种需要统计的函数比较多,那么这种手动添加起来就比较麻烦,此时就考虑到了gcc编译器提供的profile选项,也即是-pg选项。
GCC支持的其它调试选项还包括-p和-pg,它们会将剖析(Profiling)信息加入到最终生成的二进制代码中。剖析信息对于找出程序的性能瓶颈很 有帮助,是协助Linux程序员开发出高性能程序的有力工具。在编译时加入-p选项会在生成的代码中加入通用剖析工具(Prof)能够识别的统计信息,而 -pg选项则生成只有GNU剖析工具(Gprof)才能...
-pg产生额外信息,被gprof用来做profilling -O优化可执行代码 -W设置编译器的警报级别 -pedantic以ANSI/ISO C标准列出的所有警告,不符合该语言标准的地方将产生相应的警告信息 -I指定文件包含的目录 -L指定库目录(编译时的库搜索目录) -D预定义在源代码中出现的宏 ...
-pg此选项在运行后生成一个分析文件gmon.out分析每一个模块的运行时间等信息,可以用“gprof execname gmon.out”命令打开。 -static此选项将禁止使用动态库,编译得到的程序会比较大,但可以自由运行。 -share此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库。
gcc -pg -g main.c -L./ -ltest -o test 2.运行程序。 ./test 3.分析数据。 gprof -b test 结果: Each sample counts as 0.01 seconds. no time accumulated % cumulative self self total time seconds seconds calls Ts/call Ts/call name ...
gcc[-c|-S|-E][-std=standard][-g][-pg][-Olevel][-Wwarn...][-pedantic][-Idir...][-Ldir...][-Dmacro[=defn]...][-Umacro][-foption...][-mmachine-option...][-o outfile][@file]infile... 常见参数如下(注意大小写): ...