C++ 测量动态链接库的每秒CPU使用率

C++ 测量动态链接库的每秒CPU使用率,c++,cpu-usage,redhat,centos5,htop,C++,Cpu Usage,Redhat,Centos5,Htop,我有一个使用动态链接库的示例应用程序。so。我使用top命令测量示例应用程序的CPU使用率。但它显示了示例应用程序和库的CPU使用率。所以每秒。但是我只想看看库的CPU使用情况。有什么办法可以这样做吗?我听说它可以通过htop实现,但不知道如何实现。我使用了树状视图,但它显示了几个流程作为示例应用程序流程。我不知道哪一个是图书馆。我使用的是centos 5.11。内核版本3.2.63-1.el5.elrepo.如果库被认为是程序的一部分,一种方法是在代码中实现度量。以下最小示例在C++11上实现

我有一个使用动态链接库的示例应用程序。so。我使用top命令测量示例应用程序的CPU使用率。但它显示了示例应用程序和库的CPU使用率。所以每秒。但是我只想看看库的CPU使用情况。有什么办法可以这样做吗?我听说它可以通过htop实现,但不知道如何实现。我使用了树状视图,但它显示了几个流程作为示例应用程序流程。我不知道哪一个是图书馆。我使用的是centos 5.11。内核版本3.2.63-1.el5.elrepo.

如果库被认为是程序的一部分,一种方法是在代码中实现度量。以下最小示例在C++11上实现,该C++11只运行假设库中的一个函数:

包括 包括 包括 int main{ 使用名称空间std::chrono; 系统时钟系统时钟; 系统时钟::时间点开始时间{systemClock.now}; 假设::函数; system_clock::duration libraryTime{systemClock.now-startingTime};
std::你是否可以暗示共享库是一个独立的进程。事实并非如此。那么,我如何才能只获得库的CPU使用率。那么?没有其他方法吗?我尝试过使用探查器。但它们提供了很多我不需要的信息。是否有探查器不会向我提供详细的报告,而只提供共享库的CPU使用率ary?谢谢。在HTOP中,我可以看到10个PID,它们与示例应用程序的名称相同。如果它们是单个进程,为什么它们有不同的PID?或者它们是线程ID?您可以使用valgrind的callgrind部分,但它不会立即给出您要查找的确切数字。您需要总结所有函数的指令在该库中编写一个脚本,您将得到一个周期计数,而不是CPU秒数。当然,还有其他探查器,可能其中一个很有用。您也可以查看ltrace,它可以按库进行筛选。它们是线程ID。感谢您的回复。但这不可行,因为库中有许多不同的函数阻塞/n阻止通话。