但是当时我犯了非常严重的错误,以前在filter中把系统类(例如java.*、sun.*等等)过滤了,忘了取消,结果查出来的结果非常莫名其妙,最占用CPU的函数(达30%多)居然只有一个long型的赋值语句!这是在profiler的属性中设置的,如图:
图4 Eclipse的profiler插件的运行属性设置
后来想起有这个问题,把fliter重新设好,检测结果就正常了,不过没有什么有价值的线索,占用CPU较多的都是java系统包的方法(后来查出问题后回想才发现这里其实是有线索的)。于是就怀疑是内存快用光时JVM的内存管理模块会大量占用CPU,所以导致java程序的CPU占有率偏高(现在还不知道是否确实如此),另一方面,这些检测工具本身就大量消耗系统资源,也是导致CPU占用为100%的主要原因。于是,又改为用Borland Optimizeit Suite检查内存问题了。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/