java spy_Java Spy - 代码跟踪神器

Java Spy - 代码跟踪神器

Java 方法跟踪工具, Java Debug 工具, Java 方法耗时统计工具, 方便你了解各种开源框架的源码

大家最阅读源码常用的手段应该是借助开发工具 debug? 又或者是把 log4j 的基本改成 debug? 今天要和大家分享一个帮助你更好地阅读源码神器, 瞬间让你知道某个方法调用的所有方法栈 (如果你想记录 SpringBoot2.0 的启动过程所有执行到的方法, 必须调整 JVM 参数, 不然随时 OOM 了), 非常详细地记录了所有被调用到的方法及其耗时. 下面具体了解一下:

一: Java Spy

Java Spy 是一个独立的 Jar 包, 以 - javaagent 的方式运行, 会跟踪和记录设定方法的所有方法的调用过程及其耗时.

二: Spy Demo

Spy Demo 是基于 SpringBoot2.0 的项目, 集成了 springweb 和 mybatis. 基于这个项目我们来看看 SpringBoot2.0 的启动过程以及一个 Http Call 的执行过程. 现在看看如何配置并运行 Spy Demo:

(1) 配置 Idea 和 Java 程序的 JVM 参数

ab7653affab982b574eb7acc55df2e04.gif

-javaagent:C:\Users\Jo\IdeaProjects\java-spy\java-spy.jar -Xms4096m -Xmx4096m

(2) 配置需要忽略的包名

ab7653affab982b574eb7acc55df2e04.gif

SPY_IGNORE_FILE 是固定的, spy_ignores.txt 的路径可以随意改, 下面看看 spy_ignores.txt 中忽略了哪些 package:

ab7653affab982b574eb7acc55df2e04.gifcom.fasterxml

org.aspectj

io.opentracing

ch.qos.logback

org.hibernate

org.jboss

org.springframework.util

org.springframework.jmx

org.springframework.format

org.springframework.boot.logging

org.springframework.expression

org.springframework.asm

org.springframework.cglib

org.apache

org.slf4j

com.sun

sun

java

在跟踪 SpringBoot 的启动过程的时候, 我忽略了以上不太想关心的 package, 一般情况, jdk 相关的包, log 日志相关的包, JSON 包忽略掉就好了.

三: Spy Web

启动 Spy Web 之前需要执行 spy.sql, 数据存储路径和数据库的连接信息:

ab7653affab982b574eb7acc55df2e04.gif

到此, 需要配置的信息已经完成. 接下来就可以运行 Spy Demo 和 Spy Web 了. 启动完成后, 访问: http://127.0.0.1:16688/

ab7653affab982b574eb7acc55df2e04.gif

点击 sequence http://127.0.0.1:16688/spy?id=1 可以查看 SpringBoot 启动的时候方法调用详细信息 (由于信息量大, 这个页面打开需要 15min+):

ab7653affab982b574eb7acc55df2e04.gif

上图中, 蓝色方法名表示还可以继续点击查看其方法调用细节.

视频介绍: https://mp.weixin.qq.com/s/ruEVZ0ZAkJlr90Tk56PefA

来源: http://www.bubuko.com/infodetail-3656008.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值