资讯专栏INFORMATION COLUMN

IntelliJ IDEA 2017.1 EAP与异步堆栈跟踪调试器扩展

赵春朋 / 2477人阅读

摘要:带有一个新的调试器捕获这改变了堆栈跟踪相关各部分用异步代码执行接收器与相应地区的堆栈跟踪捕获的异步代码传递发送方。

反应性编程趋势后,我们的代码越来越异步。

早些时候java8介绍了CompletableFuture(采用Guava’s ListenableFuture),通过Akka, Ratpack, Reactor, RxJava, Vert.x以及其它库实现反应流。虽然反应性编程能帮助我们构建高效的应用程序,但是它们同时也是难以编写、调试。
如下方示例:

如果我们将堆栈根据一个观察点看起来会这样:

我们通过调用CompletableFuture.supplyAsync (S2_Creating.supplyAsync)来看ForkJoinPool.runWorker(一个执行者服务异步运行代码)和所有的内部,这使得该数据流难以理解并很难导航到相关连接到。

IntelliJ IDEA 2017.1带有一个新的调试器(捕获),这改变了堆栈跟踪相关各部分用异步代码执行(接收器)与相应地区的堆栈跟踪捕获的异步代码传递(发送方)。

IntelliJ IDEA的该特性只需要知道将确切的签名方法用于发送和接收数据(异步代码)。

以下是IntelliJ IDEA在设置中如何配置该调试器(Settings > Build, Execution, Deployment > Debugger > Capture)

一旦所有的需求被满足后,IntelliJ IDEA将显示堆栈跟踪调整:

如果要更好的清晰度,可以设置过滤掉库框架:

堆栈跟踪显示局部变量替换的部分(虽然没有对象字段):

需要知道的是该特性在执行期间会收集额外的数据从而可能导致性能问题。

作者信息
原文作者Andrey Cheptsov
原文链接:https://dzone.com/articles/in...
翻译自Maxleap团队_云服务研发成员:Sunny Zhang
首发地址:https://blog.maxleap.cn/archi...
相关推荐

单元测试和集成测试业务应用程序
章鱼教你自动生成json数据来测试~

欢迎扫二维码,关注MaxLeap订阅号:MaxLeap_yidongyanfa

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66697.html

相关文章

  • IntelliJ IDEA 2017.1 JDK 8 性能调优

    IntelliJ IDEA 问题描述 IntelliJ IDEA 在 多窗口、多项目协作开发时,MacBook Pro的散热风扇凶猛地转动,相关配置如下: MacBook Pro 配置 MacBook Pro (Retina, 15-inch, Mid 2015) 型号名称: MacBook Pro 型号标识符: MacBookPro11,4 处理器名称: Intel Core ...

    RobinQu 评论0 收藏0
  • Kotlin 新版来了,支持跨平台!

    摘要:还有一个好消息正式发布,做了对的支持。支持的目标平台有位。该版本也增加了对工程的实验性质的支持。于此同时微软也在大力发展自己的语言的跨平台,并且也在支持开发语言的各种工具,其实是在对和提出了挑战。点击上方开发者技术前线,选择星标 来源:开发者技术前线 作者:Tamic | 编辑: 可可 谷歌在今年的 I/O 大会上宣布,Kotlin 编程语言现在是 Android 应用程序开发人员的首选...

    szysky 评论0 收藏0
  • Intellij + Cursive: 最佳 Clojure/Java 开发环境组合

    摘要:直到上个月重新发现的组合自然是大名鼎鼎的,多年来一直享有真正程序员最佳的美誉,但直到这个的出现和接近成熟,它的威力才能被我们享有。完全与一致水平并集成的调试能力。使用了一个多月,对这套感觉仍然好极了,的最佳开发环境,没有之一。 几乎从 Clojure 诞生时候起,它的标准开发环境就是 Emacs,对 Lisp 的亲近感、slime 对 Lisp 系列语言的支持、paredit 等 Li...

    Rocture 评论0 收藏0
  • 高级Java程序员必备:《IDEA问题库》常见问题及解决方案,提升开发效率3(JAVA 小虚竹)

    摘要:作者简介大家好我是小虚竹。解决方案清除所有断点因为以启动问题启动提示很慢问题分析原因不小心改动到文件解决方案这个文件不是必要的,可以先备份到桌面,然后删除。 ❤...

    null1145 评论0 收藏0
  • IntelliJ IDEA 16预览版更新内容说明

    摘要:线程过去,跨过一个线程意味着要恢复所有的其他线程,而版开始只需要恢复当前线程即可。快速搜索新版本改进了快速搜索的弹出菜单,会将搜索项高亮显示。终于新增支持。 调试器 Groovy表达式 从16版开始,Evaluate Expression 和 Watches可以使用更短且更具表现力的Groovy表达式进行调试,而Groovy表达式以前只能用于Groovy代码。 线程 过去,跨过一个线程...

    iKcamp 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<