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