1. 查看进程占多少CPU
    #top -p 25484
  2. 查看进程里各个线程占多少CPU
    #top -p 25484 -H
  3. 查看线程的执行栈信息
    先把线程号转换为16进制。
    #printf '%0x\n' 28616
    6fc8
    再通过jstack命令看看这个线程在干嘛
    $jstack 25484 | grep -A 10 6fc8
    连续执行上述jstack命令多次,不出意料你会发现代码总是停留在某一行或某一个循环块内,如果是停留在某一行说明该行代码执行起来非常耗CPU,如果是停留在某一个循环块内说明这是个死循环。
posted on   高性能golang  阅读(838)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示