CPU百分百问题的研究

在对代码进行测试的时候,发现进程占用了100%的单核CPU资源。并且发现在另一个环境,这个进程占用了50%的CPU资源,因为在这个环境中是2核的CPU。而此时这个进程还并没有处理任何的数据,也就是说会有一个线程就占用一个CPU核的资源。

对于这个问题研究的方法主要用到了两个工具:Process Explorer和Windbg。

使用Process Exporer查找占用CPU资源的线程

博主采用了一个4核的CPU作为测试环境,这样可以有额外的CPU资源来运行我们的工具。在Process Explorer中选中要检查的进程,右键选择属性,查看线程状态,发现线程2824占用了25%的CPU资源。
Process Explorer

用Windbg查找线程调用栈

在Windbg中设置要Symbol,attach到进程,使用命令~*kv查看所有的线程,栈 并且找到2824 (0xb08)的线程, 查看其函数栈,找到占用CPU的函数。
Windbg

这个时候查找相应函数的代码进行审查,一般来说都是死循环导致的,比较容易发现问题。

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值