前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java小工具|用idea查看方法的调用过程

java小工具|用idea查看方法的调用过程

作者头像
微笑的小小刀
发布2019-08-13 11:13:03
3.7K0
发布2019-08-13 11:13:03
举报
文章被收录于专栏:java技术大本营java技术大本营

开头说两句

小刀博客: https://www.lixiang.red 小刀公从号: 程序员学习大本营

项目背景

我们通过运行idea时, 只是点一下run或者debug , 其实还有一些高级的运行/debug选项可以使用,如idea 2019.2版本,可以在run的时候查看方法调用

以前的运行方式

如图所示,在idea里面运行main函数或者单元测试时有以下的选项

通常来说我们都是点的第一个或者第二个运行的 Run StringUtils.main() : 直接运行 Debug StringUtils.main(): 以debug 的方式运行,可以打断点 Run StringUtils.main with Coverage 带有运行覆盖率报告的运行 用这个运行的话,可以看到我们的代码覆盖报告:

idea 2019.2 新附加的运行方式

在这三个里面,我们可以看到运行时,方法调用等信息 Run StringUtils.main() with Allocations Profiler: 用这个运行,可以看到线程信息,可以看到线程里面方法调用栈的信息 Run StringUtils.main() with CPU profiler : 用这个运行,可以看到虚拟机和cpu进行交互的一些方法,比较底层 Run StringUtils.main with Java Flight Recorder: 用这个运行,可以看到java飞行记录器记录的运行时系统的一些信息 通过这些附加方法的调用,我们可以看到系统一些内部的信息,可以为我们学习源码,指条路径

Run StringUtils.main() with Allocations Profiler

如下图是运行spring 时调用方法列表,在这里面可以清楚的看到springboot 的上下文加载, bean的初始化以及填充,可以对学习spring 各大组件,以及源码提供帮助

Run StringUtils.main() with CPU profiler

通过CPU profiler 来运行,可以看到更底层的一些东西, 上面也有一些外层的调用方法,更多的还有C/C++底层的方法调用, invoke 等方法

Run StringUtils.main with Java Flight Recorder

在第一次调用时,需要先配置jvm 参数:

在idea右上角的configuration里面进行jvm 参数配置

点击 Run StringUtils.main with Java Flight Recorder,如下图所示,不仅仅可以看到Allocations Profiler里面的Flame Graph , Call Tree , MethodList 还多了一个Event ,可以看到JVM运行时一些事件, 如GC, Thread, 类似于飞机上的黑盒子,可以看到内部的一个参数,状态,对jvm调优有很大的帮助

最后说两句

idea 还有很多很强大的功能等待大家去发掘, 如可以直接连数据库,直接连redis , 直接ssh连接远程服务器.还有许多强大的功能,大家可以和小刀分享一下:best396975802

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java技术大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目背景
  • 以前的运行方式
  • idea 2019.2 新附加的运行方式
    • Run StringUtils.main() with Allocations Profiler
      • Run StringUtils.main() with CPU profiler
        • Run StringUtils.main with Java Flight Recorder
          • 最后说两句
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档