天天看點

還在System.out+currentTimeMillis列印耗時,試試Arthas神器!

作者:玄明Hanko

#挑戰30天在頭條寫日記#

如何分析一下自己的web項目的性能消耗,一般我們會在開始與結束加時間相減列印出消耗時間。這種方法侵入率太高了,如果想利用arthas整體調優一下自己web項目的性能點的話,可以使用以下的步驟或思路。(當然xrebel也是一個不錯的選擇)

還在System.out+currentTimeMillis列印耗時,試試Arthas神器!

step1:從入口跟蹤

針對web項目,可以跟蹤servlet類。DispatcherServlet是整個程式的入口。

trace org.springframework.web.servlet.DispatcherServlet *           

輸入指令後,再在浏覽器通路你的web應用,就會輸出相應的資訊,可以看到輸入代碼各類方法的耗時。也會有紅包标出占比最大的方法。

還在System.out+currentTimeMillis列印耗時,試試Arthas神器!

根據結果我們可以進一步的跟蹤,繼續使用trace指令

trace org.springframework.web.servlet.DispatcherServlet doDispatch           
還在System.out+currentTimeMillis列印耗時,試試Arthas神器!

一步步的跟蹤最後會定位到業務controller、service、dao各層。

step3:模拟請求

當定位到具體的業務方法後,就可以使用tt指令檢視方法調用上下文資訊

tt -t com.wdbyte.arthas.service.UserServiceImpl mysql           
還在System.out+currentTimeMillis列印耗時,試試Arthas神器!

通過tt -t 檢視到index,然後通過index重複調用。也就是你不用從頁面去觸發這個方法的調用這樣太耗時耗力了,可以通過tt直接來觸發請求。

tt -i 1001 -p           
  • 最後通過tt -i 與 trace重複配合,定位出性能消耗

==============================================

如果文章對你有幫助,不要忘記加個關注、點個贊!

繼續閱讀