前言:
当前朋友们对“c调用java耗时操作”可能比较关怀,各位老铁们都需要知道一些“c调用java耗时操作”的相关内容。那么小编也在网摘上收集了一些有关“c调用java耗时操作””的相关内容,希望我们能喜欢,我们一起来学习一下吧!越来越喜欢Arthas了,Arthas的美在于部署简单容易上手,功能强大,能够很好的应用到生产环境上,今天介绍几个Arthas很常用的命令,对于今后故障排查很有帮助。
jad
jad 命令将 JVM 中实际运行的 class 的 byte code 反编译成 java 代码,便于你理解业务逻辑,以及对比class和源码是否有差异。
jad com.xxl.durid.controller.StudentControllerstack
输出当前方法被调用的路径,很多时候我们都知道一个方法被执行了,但这个方法被执行的路径非常多,或者你根本就不知道这个方法是从那里被执行了,此时你需要的是 stack 命令。
stack com.xxl.durid.controller.StudentController findByIdtrace
方法内部调用路径,并输出方法路径上的每个节点上耗时,trace 命令能主动搜索某个类中对应的方法调用路径,渲染和统计整个调用链路上的所有性能开销和追踪调用链路。
trace com.xxl.durid.controller.StudentController findById
trace命令应该故障排查中用的最多,也是最实用的命令,通过trace能看到某个方法中各个调用方法的耗时时间,从而很容易的找到最耗时的子调用。
watch
watch命令监控方法输入参数、返回值,让你能很方便的观察到指定函数的调用情况,能观察到的范围为:返回值、抛出异常、入参,通过编写 OGNL 表达式进行对应变量的查看。
watch 参数说明:
watch com.xxl.durid.controller.StudentController findById {params[0],returnObj,target} -x 2
params:表示方法入参,可以通过params[0]获取指定位置的参数,可以用于过滤请求条件使用。
returnObj:表示方法返回参数。
target:表示类对象,可以通过target查看成员变量的值。
throwExp:表示异常。
-x:指定输出结果的属性遍历深度,默认为 1 如果返回是个对象,可以看到某个对象的某个内容。
标签: #c调用java耗时操作