最近在测试一个用java语言实现的数据采集接口时发现,接口一旦运行起来,CPU利用率瞬间飙升到85%-95%,一旦停止就恢复到40%以下,这让我不得不面对以前从未关注过的程序性能问题。
在硬着头皮查找资料定位错误修正bug的过程中参考了下面两篇文章:
最初想通过java自带的jconsole和jvisualvm来调试,但发现jconsole只能知道应用整体情况,不能定位问题,而jvisualvm最多查找到类,
如果所示,但不能更详细的进行定位。于是参考了上面两篇文章一步步实现了最终目的。
一、查找进程
查找问题进程比较简单,因为问题集中在CPU资源占用过高,那么我们查找进程时只需关注CPU。方法有两种:
1、查看Windows任务管理器
打开Windows任务管理器,查看——>选择列,勾选PID,然后查看进程项,并让其按照CPU列排序如图,找到 javaw.exe进程,其PID是9272。
2、利用jvisualvm工具
打开工具,然后启动应