但是當時我犯了非常嚴重的錯誤,以前在filter中把系統類(例如java.*、sun.*等等)過濾了,忘了取消,結果查出來的結果非常莫名其妙,最占用CPU的函數(達30%多)居然只有一個long型的賦值語句!這是在profiler的屬性中設置的,如圖:
圖4 Eclipse的profiler插件的運行屬性設置
后來想起有這個問題,把fliter重新設好,檢測結果就正常了,不過沒有什么有價值的線索,占用CPU較多的都是java系統包的方法(后來查出問題后回想才發現這里其實是有線索的)。于是就懷疑是內存快用光時JVM的內存管理模塊會大量占用CPU,所以導致java程序的CPU占有率偏高(現在還不知道是否確實如此),另一方面,這些檢測工具本身就大量消耗系統資源,也是導致CPU占用為100%的主要原因。于是,又改為用Borland Optimizeit Suite檢查內存問題了。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/