1,通过 top命令查看占用过高的进程ID号. 

这里占用高的进程是21765

2, 输入 ps -mp 21765 -o THREAD,tid,time

看到占用cpu过高的是21776号线程

再输入 pstack 21765 可以输出当前在运行的所有线程 


centos 7下定位 cpu占用过高的函数(c++开发的)

查看(LWP  21776) 线程:

centos 7下定位 cpu占用过高的函数(c++开发的)


由此可见这里的 void ReceiveUDPDataThread::run() 函数就是占用高的线程调用的.

而且一直在调用 recvfrom.  说明这里没做错误处理. 要么当收到数据为-1时没sleep或是应该退出.

centos 7下定位 cpu占用过高的函数(c++开发的)


相关文章:

  • 2021-12-20
  • 2021-04-08
  • 2021-05-20
  • 2021-07-10
  • 2021-11-18
  • 2021-10-04
  • 2021-12-22
  • 2021-10-17
猜你喜欢
  • 2022-12-23
  • 2022-01-10
  • 2022-12-23
  • 2021-11-13
  • 2021-12-17
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案