摘要:帶有一個(gè)新的調(diào)試器捕獲這改變了堆棧跟蹤相關(guān)各部分用異步代碼執(zhí)行接收器與相應(yīng)地區(qū)的堆棧跟蹤捕獲的異步代碼傳遞發(fā)送方。
反應(yīng)性編程趨勢后,我們的代碼越來越異步。
早些時(shí)候java8介紹了CompletableFuture(采用Guava’s ListenableFuture),通過Akka, Ratpack, Reactor, RxJava, Vert.x以及其它庫實(shí)現(xiàn)反應(yīng)流。雖然反應(yīng)性編程能幫助我們構(gòu)建高效的應(yīng)用程序,但是它們同時(shí)也是難以編寫、調(diào)試。
如下方示例:
如果我們將堆棧根據(jù)一個(gè)觀察點(diǎn)看起來會(huì)這樣:
我們通過調(diào)用CompletableFuture.supplyAsync (S2_Creating.supplyAsync)來看ForkJoinPool.runWorker(一個(gè)執(zhí)行者服務(wù)異步運(yùn)行代碼)和所有的內(nèi)部,這使得該數(shù)據(jù)流難以理解并很難導(dǎo)航到相關(guān)連接到。
IntelliJ IDEA 2017.1帶有一個(gè)新的調(diào)試器(捕獲),這改變了堆棧跟蹤相關(guān)各部分用異步代碼執(zhí)行(接收器)與相應(yīng)地區(qū)的堆棧跟蹤捕獲的異步代碼傳遞(發(fā)送方)。
IntelliJ IDEA的該特性只需要知道將確切的簽名方法用于發(fā)送和接收數(shù)據(jù)(異步代碼)。
以下是IntelliJ IDEA在設(shè)置中如何配置該調(diào)試器(Settings > Build, Execution, Deployment > Debugger > Capture)
一旦所有的需求被滿足后,IntelliJ IDEA將顯示堆棧跟蹤調(diào)整:
如果要更好的清晰度,可以設(shè)置過濾掉庫框架:
堆棧跟蹤顯示局部變量替換的部分(雖然沒有對象字段):
需要知道的是該特性在執(zhí)行期間會(huì)收集額外的數(shù)據(jù)從而可能導(dǎo)致性能問題。
作者信息單元測試和集成測試業(yè)務(wù)應(yīng)用程序
章魚教你自動(dòng)生成json數(shù)據(jù)來測試~
歡迎掃二維碼,關(guān)注MaxLeap訂閱號:MaxLeap_yidongyanfa
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/66697.html
IntelliJ IDEA 問題描述 IntelliJ IDEA 在 多窗口、多項(xiàng)目協(xié)作開發(fā)時(shí),MacBook Pro的散熱風(fēng)扇兇猛地轉(zhuǎn)動(dòng),相關(guān)配置如下: MacBook Pro 配置 MacBook Pro (Retina, 15-inch, Mid 2015) 型號名稱: MacBook Pro 型號標(biāo)識符: MacBookPro11,4 處理器名稱: Intel Core ...
摘要:還有一個(gè)好消息正式發(fā)布,做了對的支持。支持的目標(biāo)平臺有位。該版本也增加了對工程的實(shí)驗(yàn)性質(zhì)的支持。于此同時(shí)微軟也在大力發(fā)展自己的語言的跨平臺,并且也在支持開發(fā)語言的各種工具,其實(shí)是在對和提出了挑戰(zhàn)。點(diǎn)擊上方開發(fā)者技術(shù)前線,選擇星標(biāo) 來源:開發(fā)者技術(shù)前線 作者:Tamic | 編輯: 可可 谷歌在今年的 I/O 大會(huì)上宣布,Kotlin 編程語言現(xiàn)在是 Android 應(yīng)用程序開發(fā)人員的首選...
摘要:直到上個(gè)月重新發(fā)現(xiàn)的組合自然是大名鼎鼎的,多年來一直享有真正程序員最佳的美譽(yù),但直到這個(gè)的出現(xiàn)和接近成熟,它的威力才能被我們享有。完全與一致水平并集成的調(diào)試能力。使用了一個(gè)多月,對這套感覺仍然好極了,的最佳開發(fā)環(huán)境,沒有之一。 幾乎從 Clojure 誕生時(shí)候起,它的標(biāo)準(zhǔn)開發(fā)環(huán)境就是 Emacs,對 Lisp 的親近感、slime 對 Lisp 系列語言的支持、paredit 等 Li...
摘要:作者簡介大家好我是小虛竹。解決方案清除所有斷點(diǎn)因?yàn)橐詥?dòng)問題啟動(dòng)提示很慢問題分析原因不小心改動(dòng)到文件解決方案這個(gè)文件不是必要的,可以先備份到桌面,然后刪除。 ?...
摘要:線程過去,跨過一個(gè)線程意味著要恢復(fù)所有的其他線程,而版開始只需要恢復(fù)當(dāng)前線程即可??焖偎阉餍掳姹靖倪M(jìn)了快速搜索的彈出菜單,會(huì)將搜索項(xiàng)高亮顯示。終于新增支持。 調(diào)試器 Groovy表達(dá)式 從16版開始,Evaluate Expression 和 Watches可以使用更短且更具表現(xiàn)力的Groovy表達(dá)式進(jìn)行調(diào)試,而Groovy表達(dá)式以前只能用于Groovy代碼。 線程 過去,跨過一個(gè)線程...
閱讀 2473·2021-11-23 09:51
閱讀 533·2019-08-30 13:59
閱讀 1833·2019-08-29 11:20
閱讀 2541·2019-08-26 13:41
閱讀 3249·2019-08-26 12:16
閱讀 740·2019-08-26 10:59
閱讀 3335·2019-08-26 10:14
閱讀 606·2019-08-23 17:21