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

随着反应性编程的兴起,异步代码变得越来越普遍但也更难调试。IntelliJ IDEA 2017.1引入了异步堆栈跟踪调试器扩展,通过捕获异步代码的发送方和接收方堆栈跟踪,使开发者能够更轻松地理解和调试异步流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

作者钉钉用户名:

@Li Zhang

封面配图:

文章摘要:

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

文章正文:

早些时候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/intellij-idea-20171-eap-extends-debugger-with-asyn
翻译来与Maxleap团队_云服务研发成员:Sunny Zhang

关键词信息:

性能测试
java
IDEA开发工具

文章分类:

测试开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值