diff --git a/arthas-vmtool/src/main/java/arthas/Vmtool.java b/arthas-vmtool/src/main/java/arthas/VmTool.java similarity index 92% rename from arthas-vmtool/src/main/java/arthas/Vmtool.java rename to arthas-vmtool/src/main/java/arthas/VmTool.java index ad72fa649..ad15d1271 100644 --- a/arthas-vmtool/src/main/java/arthas/Vmtool.java +++ b/arthas-vmtool/src/main/java/arthas/VmTool.java @@ -9,7 +9,7 @@ import com.taobao.arthas.common.OSUtils; * @author hengyunabc 2021-04-26 * @since 3.5.1 */ -public class Vmtool implements VMtoolMXBean { +public class VmTool implements VmToolMXBean { /** * 不要修改jni-lib的名称 @@ -34,16 +34,16 @@ public class Vmtool implements VMtoolMXBean { } } - private static Vmtool instance; + private static VmTool instance; - private Vmtool() { + private VmTool() { } - public static Vmtool getInstance() { + public static VmTool getInstance() { return getInstance(null); } - public static synchronized Vmtool getInstance(String libPath) { + public static synchronized VmTool getInstance(String libPath) { if (instance != null) { return instance; } @@ -54,7 +54,7 @@ public class Vmtool implements VMtoolMXBean { System.load(libPath); } - instance = new Vmtool(); + instance = new VmTool(); return instance; } diff --git a/arthas-vmtool/src/main/java/arthas/VMtoolMXBean.java b/arthas-vmtool/src/main/java/arthas/VmToolMXBean.java similarity index 83% rename from arthas-vmtool/src/main/java/arthas/VMtoolMXBean.java rename to arthas-vmtool/src/main/java/arthas/VmToolMXBean.java index 537a081a0..e70a17e7a 100644 --- a/arthas-vmtool/src/main/java/arthas/VMtoolMXBean.java +++ b/arthas-vmtool/src/main/java/arthas/VmToolMXBean.java @@ -3,19 +3,19 @@ package arthas; import java.util.ArrayList; /** - * VMtool interface for JMX server. How to register VMtool MBean: + * VmTool interface for JMX server. How to register VmTool MBean: * *
  * {@code
  *     ManagementFactory.getPlatformMBeanServer().registerMBean(
- *             VMtool.getInstance(),
- *             new ObjectName("arthas:type=VMtool")
+ *             VmTool.getInstance(),
+ *             new ObjectName("arthas:type=VmTool")
  *     );
  * }
  * 
* @author hengyunabc 2021-04-26 */ -public interface VMtoolMXBean { +public interface VmToolMXBean { /** * 检测jni-lib是否正常,如果正常,应该输出OK */ diff --git a/arthas-vmtool/src/main/native/include/arthas_Vmtool.h b/arthas-vmtool/src/main/native/include/arthas_VmTool.h similarity index 55% rename from arthas-vmtool/src/main/native/include/arthas_Vmtool.h rename to arthas-vmtool/src/main/native/include/arthas_VmTool.h index 2d03330c5..87098bfac 100644 --- a/arthas-vmtool/src/main/native/include/arthas_Vmtool.h +++ b/arthas-vmtool/src/main/native/include/arthas_VmTool.h @@ -1,58 +1,58 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ #include -/* Header for class arthas_Vmtool */ +/* Header for class arthas_VmTool */ -#ifndef _Included_arthas_Vmtool -#define _Included_arthas_Vmtool +#ifndef _Included_arthas_VmTool +#define _Included_arthas_VmTool #ifdef __cplusplus extern "C" { #endif /* - * Class: arthas_Vmtool + * Class: arthas_VmTool * Method: check * Signature: ()Ljava/lang/String; */ -JNIEXPORT jstring JNICALL Java_arthas_Vmtool_check0 +JNIEXPORT jstring JNICALL Java_arthas_VmTool_check0 (JNIEnv *, jclass); /* - * Class: arthas_Vmtool + * Class: arthas_VmTool * Method: getInstances * Signature: (Ljava/lang/Class;)Ljava/util/ArrayList; */ -JNIEXPORT jobject JNICALL Java_arthas_Vmtool_getInstances +JNIEXPORT jobject JNICALL Java_arthas_VmTool_getInstances (JNIEnv *, jclass, jclass); /* - * Class: arthas_Vmtool + * Class: arthas_VmTool * Method: sumInstanceSize * Signature: (Ljava/lang/Class;)J */ -JNIEXPORT jlong JNICALL Java_arthas_Vmtool_sumInstanceSize +JNIEXPORT jlong JNICALL Java_arthas_VmTool_sumInstanceSize (JNIEnv *, jclass, jclass); /* - * Class: arthas_Vmtool + * Class: arthas_VmTool * Method: getInstanceSize * Signature: (Ljava/lang/Object;)J */ -JNIEXPORT jlong JNICALL Java_arthas_Vmtool_getInstanceSize +JNIEXPORT jlong JNICALL Java_arthas_VmTool_getInstanceSize (JNIEnv *, jclass, jobject); /* - * Class: arthas_Vmtool + * Class: arthas_VmTool * Method: countInstances * Signature: (Ljava/lang/Class;)J */ -JNIEXPORT jlong JNICALL Java_arthas_Vmtool_countInstances +JNIEXPORT jlong JNICALL Java_arthas_VmTool_countInstances (JNIEnv *, jclass, jclass); /* - * Class: arthas_Vmtool + * Class: arthas_VmTool * Method: getAllLoadedClasses * Signature: ()Ljava/util/ArrayList; */ -JNIEXPORT jobject JNICALL Java_arthas_Vmtool_getAllLoadedClasses +JNIEXPORT jobject JNICALL Java_arthas_VmTool_getAllLoadedClasses (JNIEnv *, jclass); #ifdef __cplusplus diff --git a/arthas-vmtool/src/main/native/src/jni-library.cpp b/arthas-vmtool/src/main/native/src/jni-library.cpp index adeccfb31..776124cdf 100644 --- a/arthas-vmtool/src/main/native/src/jni-library.cpp +++ b/arthas-vmtool/src/main/native/src/jni-library.cpp @@ -2,11 +2,11 @@ #include #include #include -#include "arthas_Vmtool.h" +#include "arthas_VmTool.h" extern "C" JNIEXPORT jstring JNICALL -Java_arthas_Vmtool_check0(JNIEnv *env, jclass thisClass) { +Java_arthas_VmTool_check0(JNIEnv *env, jclass thisClass) { return env->NewStringUTF("OK"); } @@ -47,7 +47,7 @@ HeapObjectCallback(jlong class_tag, jlong size, jlong *tag_ptr, void *user_data) extern "C" JNIEXPORT jobject JNICALL -Java_arthas_Vmtool_getInstances0(JNIEnv *env, jclass thisClass, jclass klass) { +Java_arthas_VmTool_getInstances0(JNIEnv *env, jclass thisClass, jclass klass) { jvmtiEnv *jvmti = getJvmtiEnv(env); @@ -88,7 +88,7 @@ Java_arthas_Vmtool_getInstances0(JNIEnv *env, jclass thisClass, jclass klass) { extern "C" JNIEXPORT jlong JNICALL -Java_arthas_Vmtool_sumInstanceSize0(JNIEnv *env, jclass thisClass, jclass klass) { +Java_arthas_VmTool_sumInstanceSize0(JNIEnv *env, jclass thisClass, jclass klass) { jvmtiEnv *jvmti = getJvmtiEnv(env); @@ -126,7 +126,7 @@ Java_arthas_Vmtool_sumInstanceSize0(JNIEnv *env, jclass thisClass, jclass klass) } extern "C" -JNIEXPORT jlong JNICALL Java_arthas_Vmtool_getInstanceSize0 +JNIEXPORT jlong JNICALL Java_arthas_VmTool_getInstanceSize0 (JNIEnv *env, jclass thisClass, jobject instance) { jvmtiEnv *jvmti = getJvmtiEnv(env); @@ -142,7 +142,7 @@ JNIEXPORT jlong JNICALL Java_arthas_Vmtool_getInstanceSize0 extern "C" JNIEXPORT jlong JNICALL -Java_arthas_Vmtool_countInstances0(JNIEnv *env, jclass thisClass, jclass klass) { +Java_arthas_VmTool_countInstances0(JNIEnv *env, jclass thisClass, jclass klass) { jvmtiEnv *jvmti = getJvmtiEnv(env); @@ -172,7 +172,7 @@ Java_arthas_Vmtool_countInstances0(JNIEnv *env, jclass thisClass, jclass klass) } extern "C" -JNIEXPORT jobject JNICALL Java_arthas_Vmtool_getAllLoadedClasses0 +JNIEXPORT jobject JNICALL Java_arthas_VmTool_getAllLoadedClasses0 (JNIEnv *env, jclass thisClass) { jvmtiEnv *jvmti = getJvmtiEnv(env); diff --git a/arthas-vmtool/src/test/java/arthas/VmtoolTest.java b/arthas-vmtool/src/test/java/arthas/VmToolTest.java similarity index 64% rename from arthas-vmtool/src/test/java/arthas/VmtoolTest.java rename to arthas-vmtool/src/test/java/arthas/VmToolTest.java index 5a2b63553..223a853b5 100644 --- a/arthas-vmtool/src/test/java/arthas/VmtoolTest.java +++ b/arthas-vmtool/src/test/java/arthas/VmToolTest.java @@ -2,19 +2,17 @@ package arthas; import org.junit.Test; -import arthas.Vmtool; - import java.io.File; import java.lang.ref.WeakReference; import java.util.ArrayList; -public class VmtoolTest { +public class VmToolTest { /** - * 在我的macbook上运行结果如下 + * macbook上运行结果如下 * allLoadedClasses->1050 - * arthas.JvmUtils@5bb21b69 arthas.JvmUtils@6b9651f3 - * before instances->[arthas.JvmUtils@5bb21b69, arthas.JvmUtils@6b9651f3] + * arthas.VmTool@5bb21b69 arthas.VmTool@6b9651f3 + * before instances->[arthas.VmTool@5bb21b69, arthas.VmTool@6b9651f3] * size->16 * count->2 * sum size->32 @@ -24,31 +22,31 @@ public class VmtoolTest { @Test public void test01() { try { - String path = Vmtool.class.getProtectionDomain().getCodeSource().getLocation().getPath(); + String path = VmTool.class.getProtectionDomain().getCodeSource().getLocation().getPath(); System.err.println(path); - String libPath = new File(path, Vmtool.detectLibName()).getAbsolutePath(); - Vmtool vmtool = Vmtool.getInstance(libPath); + String libPath = new File(path, VmTool.detectLibName()).getAbsolutePath(); + VmTool vmtool = VmTool.getInstance(libPath); //调用native方法,获取已加载的类,不包括小类型(如int) ArrayList> allLoadedClasses = vmtool.getAllLoadedClasses(); System.out.println("allLoadedClasses->" + allLoadedClasses.size()); //通过下面的例子,可以看到getInstances(Class klass)拿到的是当前存活的所有对象 - WeakReference weakReference1 = new WeakReference(new VmtoolTest()); - WeakReference weakReference2 = new WeakReference(new VmtoolTest()); + WeakReference weakReference1 = new WeakReference(new VmToolTest()); + WeakReference weakReference2 = new WeakReference(new VmToolTest()); System.out.println(weakReference1.get() + " " + weakReference2.get()); - ArrayList beforeInstances = vmtool.getInstances(Vmtool.class); + ArrayList beforeInstances = vmtool.getInstances(VmTool.class); System.out.println("before instances->" + beforeInstances); System.out.println("size->" + vmtool.getInstanceSize(weakReference1.get())); - System.out.println("count->" + vmtool.countInstances(Vmtool.class)); - System.out.println("sum size->" + vmtool.sumInstanceSize(Vmtool.class)); + System.out.println("count->" + vmtool.countInstances(VmTool.class)); + System.out.println("sum size->" + vmtool.sumInstanceSize(VmTool.class)); beforeInstances = null; System.gc(); Thread.sleep(100); System.out.println(weakReference1.get() + " " + weakReference2.get()); - ArrayList afterInstances = vmtool.getInstances(Vmtool.class); + ArrayList afterInstances = vmtool.getInstances(VmTool.class); System.out.println("after instances->" + afterInstances); } catch (Exception e) { e.printStackTrace();