我需要在我们的系统中gprof一个库来检查函数调用,看看我们是否还能对其进行优化。基本上,我所拥有的是
使用共享库myLib.so的可执行文件A
我想要myLib.so的gprof。当我使用-pg选项编译myLib.so源代码时,它会生成一个.so文件。
但是,由于某些原因,针对该库重新编译可执行文件A不会生成*.gmon文件。需要做些什么?我应该静态链接myLib吗?如果是这样,请告诉我是怎么做的。我是个新手,请原谅我的无知。我每天都在学习
提前谢谢。
发布于 2010-03-13 22:05:01
您可以使用像RotateRight/Zoom这样好的采样分析器,也可以尝试使用this technique。此外,lsstack的服务也很好。pstack也有,但你需要做更多的工作。
发布于 2012-03-07 21:41:26
我也有同样的问题,但我认为最好的做法是创建一个小的C/C++程序,该程序通过一些测试调用使用库,使用-pg使用库编译它,并分析它。通过这种方式,您还可以很好地将库的分析问题与其他东西隔离开来。
正如http://sourceware.org/binutils/docs/gprof/Implementation.html和https://stackoverflow.com/a/7290284/885650指出的,链接时需要-pg,因为它会在任何地方添加额外的代码。
https://stackoverflow.com/questions/2434488
复制相似问题