[alibaba/arthas]trace查询不到具体耗时的方法

2024-07-09 509 views
8
环境信息
  • arthas版本: 3.5.4
  • 目标进程的JVM版本: jdk1.8
重现问题的步骤

执行命令: trace --skipJDKMethod false java.io.ObjectInputStream readObject

---ts=2021-11-25 14:46:39;thread_name=tcp-disco-sock-reader-[591cc03c 192.168.139.129:38759 client]-#157-#2116;id=872;is_daemon=false;priority=10;TCCL=sun.misc.Launcher$AppClassLoader@18b4aac2 ---[35037.203282ms] java.io.ObjectInputStream:readObject() +---[35037.173462ms] java.io.ObjectInputStream:readObject0() #431 | ---[min=0.003778ms,max=0.188342ms,total=1.988598ms,count=301] java.io.ObjectInputStream:readObject() | +---[min=8.48E-4ms,max=0.167322ms,total=0.974466ms,count=301] java.io.ObjectInputStream:readObject0() #431 | |---[min=0.004147ms,max=0.006542ms,total=0.022133ms,count=4] java.io.ObjectInputStream:readObject() | | +---[min=0.001261ms,max=0.00191ms,total=0.006412ms,count=4] java.io.ObjectInputStream:readObject0() #431 | | +---[min=4.27E-4ms,max=4.9E-4ms,total=0.001826ms,count=4] java.io.ObjectInputStream$HandleTable:markDependency() #432 | | ---[min=4.65E-4ms,max=5.63E-4ms,total=0.002034ms,count=4] java.io.ObjectInputStream$HandleTable:lookupException() #433 | +---[min=4.04E-4ms,max=0.028138ms,total=0.164384ms,count=301] java.io.ObjectInputStream$HandleTable:markDependency() #432 |---[min=4.46E-4ms,max=0.015471ms,total=0.167086ms,count=301] java.io.ObjectInputStream$HandleTable:lookupException() #433 +---[0.002828ms] java.io.ObjectInputStream$HandleTable:markDependency() #432 +---[0.002578ms] java.io.ObjectInputStream$HandleTable:lookupException() #433 `---[0.003358ms] java.io.ObjectInputStream$ValidationList:doCallbacks() #438

问题

查询不到具体耗时的方法,实际耗时的方法是readExternal方法(ObjectInputStream 源码里面调用readExternal接口),具体实现是自己写的类重载了Externalizable类的readExternal,这种情况arthas 是不是不支持

回答

9

options unsafe true 这个也开启了