溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中怎么利用idea查看方法的調(diào)用過程

發(fā)布時間:2021-07-01 15:04:56 來源:億速云 閱讀:777 作者:Leah 欄目:大數(shù)據(jù)

這篇文章給大家介紹java中怎么利用idea查看方法的調(diào)用過程,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

如圖所示,在idea里面運行main函數(shù)或者單元測試時有以下的選項

java中怎么利用idea查看方法的調(diào)用過程

通常來說我們都是點的第一個或者第二個運行的
Run StringUtils.main() : 直接運行
Debug StringUtils.main(): 以debug 的方式運行,可以打斷點
Run StringUtils.main with Coverage 帶有運行覆蓋率報告的運行
用這個運行的話,可以看到我們的代碼覆蓋報告:

java中怎么利用idea查看方法的調(diào)用過程

idea 2019.2 新附加的運行方式

java中怎么利用idea查看方法的調(diào)用過程

在這三個里面,我們可以看到運行時,方法調(diào)用等信息
Run StringUtils.main() with Allocations Profiler: 用這個運行,可以看到線程信息,可以看到線程里面方法調(diào)用棧的信息
Run StringUtils.main() with CPU profiler : 用這個運行,可以看到虛擬機和cpu進行交互的一些方法,比較底層
Run StringUtils.main with Java Flight Recorder: 用這個運行,可以看到java飛行記錄器記錄的運行時系統(tǒng)的一些信息
通過這些附加方法的調(diào)用,我們可以看到系統(tǒng)一些內(nèi)部的信息,可以為我們學習源碼,指條路徑

Run StringUtils.main() with Allocations Profiler

java中怎么利用idea查看方法的調(diào)用過程

如下圖是運行spring 時調(diào)用方法列表,在這里面可以清楚的看到springboot 的上下文加載, bean的初始化以及填充,可以對學習spring 各大組件,以及源碼提供幫助

java中怎么利用idea查看方法的調(diào)用過程

Run StringUtils.main() with CPU profiler

通過CPU profiler 來運行,可以看到更底層的一些東西, 上面也有一些外層的調(diào)用方法,更多的還有C/C++底層的方法調(diào)用, invoke 等方法

java中怎么利用idea查看方法的調(diào)用過程

Run StringUtils.main with Java Flight Recorder

在第一次調(diào)用時,需要先配置jvm 參數(shù):

java中怎么利用idea查看方法的調(diào)用過程

在idea右上角的configuration里面進行jvm 參數(shù)配置

java中怎么利用idea查看方法的調(diào)用過程

點擊 Run StringUtils.main with Java Flight Recorder,如下圖所示,不僅僅可以看到Allocations Profiler里面的Flame Graph , Call Tree , MethodList 還多了一個Event ,可以看到JVM運行時一些事件, 如GC, Thread, 類似于飛機上的黑盒子,可以看到內(nèi)部的一個參數(shù),狀態(tài),對jvm調(diào)優(yōu)有很大的幫助

java中怎么利用idea查看方法的調(diào)用過程

java中怎么利用idea查看方法的調(diào)用過程

最后說兩句

idea 還有很多很強大的功能等待大家去發(fā)掘, 如可以直接連數(shù)據(jù)庫,直接連redis , 直接ssh連接遠程服務器.還有許多強大的功能,大家可以和小刀分享一下:best396975802

java中怎么利用idea查看方法的調(diào)用過程

關于java中怎么利用idea查看方法的調(diào)用過程就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI