fix some doc and comment (#629)

This commit is contained in:
徐志毅 2019-04-26 17:56:59 +08:00 committed by hengyunabc
parent 39ec104b4f
commit 51c0c2ef43
6 changed files with 18 additions and 14 deletions

View File

@ -346,13 +346,14 @@ public class AdviceWeaver extends ClassVisitor implements Opcodes {
/** /**
* 构建通知编织器 * 构建通知编织器
* *
* @param adviceId 通知ID * @param adviceId 通知ID
* @param isTracing 可跟踪方法调用 * @param isTracing 可跟踪方法调用
* @param className 类名称 * @param skipJDKTrace 是否忽略对JDK内部方法的跟踪
* @param matcher 方法匹配 * @param className 类名称
* 只有匹配上的方法才会被织入通知器 * @param matcher 方法匹配
* @param affect 影响计数 * 只有匹配上的方法才会被织入通知器
* @param cv ClassVisitor for ASM * @param affect 影响计数
* @param cv ClassVisitor for ASM
*/ */
public AdviceWeaver(int adviceId, boolean isTracing, boolean skipJDKTrace, String className, Matcher matcher, EnhancerAffect affect, ClassVisitor cv) { public AdviceWeaver(int adviceId, boolean isTracing, boolean skipJDKTrace, String className, Matcher matcher, EnhancerAffect affect, ClassVisitor cv) {
super(Opcodes.ASM7, cv); super(Opcodes.ASM7, cv);

View File

@ -51,6 +51,7 @@ public class Enhancer implements ClassFileTransformer {
/** /**
* @param adviceId 通知编号 * @param adviceId 通知编号
* @param isTracing 可跟踪方法调用 * @param isTracing 可跟踪方法调用
* @param skipJDKTrace 是否忽略对JDK内部方法的跟踪
* @param matchingClasses 匹配中的类 * @param matchingClasses 匹配中的类
* @param methodNameMatcher 方法名匹配 * @param methodNameMatcher 方法名匹配
* @param affect 影响统计 * @param affect 影响统计
@ -170,7 +171,7 @@ public class Enhancer implements ClassFileTransformer {
// 成功计数 // 成功计数
affect.cCnt(1); affect.cCnt(1);
// 遣间谍 // 遣间谍
try { try {
spy(inClassLoader); spy(inClassLoader);
} catch (Throwable t) { } catch (Throwable t) {
@ -265,6 +266,7 @@ public class Enhancer implements ClassFileTransformer {
* @param inst inst * @param inst inst
* @param adviceId 通知ID * @param adviceId 通知ID
* @param isTracing 可跟踪方法调用 * @param isTracing 可跟踪方法调用
* @param skipJDKTrace 是否忽略对JDK内部方法的跟踪
* @param classNameMatcher 类名匹配 * @param classNameMatcher 类名匹配
* @param methodNameMatcher 方法名匹配 * @param methodNameMatcher 方法名匹配
* @return 增强影响范围 * @return 增强影响范围

View File

@ -2,7 +2,7 @@ package com.taobao.arthas.core.advisor;
/** /**
* 方法调用跟踪<br/> * 方法调用跟踪<br/>
* 当一个方法内部调用另外一个方法时发此跟踪方法 * 当一个方法内部调用另外一个方法时发此跟踪方法
* Created by vlinux on 15/5/27. * Created by vlinux on 15/5/27.
*/ */
public interface InvokeTraceable { public interface InvokeTraceable {

View File

@ -18,10 +18,11 @@ import java.util.Set;
public class SearchUtils { public class SearchUtils {
/** /**
* 根据类名匹配已经被JVM加载的类 * 根据类名匹配已经被JVM加载的类
* *
* @param inst inst * @param inst inst
* @param classNameMatcher 类名匹配 * @param classNameMatcher 类名匹配
* @param limit 最大匹配限制
* @return 匹配的类集合 * @return 匹配的类集合
*/ */
public static Set<Class<?>> searchClass(Instrumentation inst, Matcher<String> classNameMatcher, int limit) { public static Set<Class<?>> searchClass(Instrumentation inst, Matcher<String> classNameMatcher, int limit) {

View File

@ -81,7 +81,7 @@ Affect(class-cnt:1 , method-cnt:1) cost in 41 ms.
`---[0.05447ms] demo.MathGame:print() `---[0.05447ms] demo.MathGame:print()
``` ```
> 只会展示耗时大于4ms的调用路径有助于在排查问题的时候只关注异常情况 > 只会展示耗时大于10ms的调用路径有助于在排查问题的时候只关注异常情况
- 是不是很眼熟,没错,在 JProfiler 等收费软件中你曾经见识类似的功能,这里你将可以通过命令就能打印出指定调用路径。 友情提醒下,`trace` 在执行的过程中本身是会有一定的性能开销,在统计的报告中并未像 JProfiler 一样预先减去其自身的统计开销。所以这统计出来有些许的不准,渲染路径上调用的类、方法越多,性能偏差越大。但还是能让你看清一些事情的。 - 是不是很眼熟,没错,在 JProfiler 等收费软件中你曾经见识类似的功能,这里你将可以通过命令就能打印出指定调用路径。 友情提醒下,`trace` 在执行的过程中本身是会有一定的性能开销,在统计的报告中并未像 JProfiler 一样预先减去其自身的统计开销。所以这统计出来有些许的不准,渲染路径上调用的类、方法越多,性能偏差越大。但还是能让你看清一些事情的。
- [12.033735ms] 的含义,`12.033735` 的含义是:当前节点在当前步骤的耗时,单位为毫秒 - [12.033735ms] 的含义,`12.033735` 的含义是:当前节点在当前步骤的耗时,单位为毫秒
@ -96,4 +96,4 @@ trace命令只会trace匹配到的函数里的子调用并不会向下trace
```bash ```bash
trace -E com.test.ClassA|org.test.ClassB method1|method2|method3 trace -E com.test.ClassA|org.test.ClassB method1|method2|method3
``` ```

View File

@ -28,7 +28,7 @@ public class Spy {
*/ */
public static volatile Method AGENT_RESET_METHOD; public static volatile Method AGENT_RESET_METHOD;
/* /**
* 用于普通的间谍初始化 * 用于普通的间谍初始化
*/ */
public static void init( public static void init(
@ -48,7 +48,7 @@ public class Spy {
THROW_INVOKING_METHOD = throwInvokingMethod; THROW_INVOKING_METHOD = throwInvokingMethod;
} }
/* /**
* 用于启动线程初始化 * 用于启动线程初始化
*/ */
public static void initForAgentLauncher( public static void initForAgentLauncher(