visualvm工具使用教程

Jvisualvm工具使用教程。一、插件安装:jvisualvm是随jdk一同发布的jvm诊断工具,通过插件可以扩展很多功能,插件扩展也是jvisualvm的精华所在。

一、插件安装

jvisualvm是随jdk一同发布的jvm诊断工具,通过插件可以扩展很多功能,插件扩展也是jvisualvm的精华所在。
打开该工具,通过菜单“工具”—>“插件”开发以下对话框:
visualvm工具使用教程_第1张图片
在可用插件tab中选择需要安装的插件,本博文中需要用到两个插件如上图中的方框所示。

二、调整IDEA类加载速度

本部分的时间测量用到插件Visual GC。

IDEA在启动时,由于加载很多的类,占用了较长的时间,其实在加载这些类时,还有很重要的一步就是验证这些加载的类。平时我们都是在组内开发工程,可以认为这些加载的编译代码是可靠的,不需要在加载的视乎再进行字节码验证。我们可以通过参数-Xverify:none禁止字节码验证,加快IDEA的启动过程。
这个参数要加载IDEA的配置文件中,一般情况下,配置文件在个人目录下:
这里写图片描述
修改后的配置文件如下:

-Xms512m -Xmx1500m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:MaxJavaStackTraceDepth=-1 -agentlib:yjpagent64=probe_disable=*,disablealloc,disabletracing,onlylocal,disableexceptiontelemetry,delay=10000,sessionname=IntelliJIdea2017.2 -Xverify:none

这些参数也可在jvisualvm的概述面板下看到:
visualvm工具使用教程_第2张图片

通过添加参数-Xverify:none配置后,类加载速度提高30s以上。可以通过visual vm插件面板查看:
visualvm工具使用教程_第3张图片

根据visual vm中面板的显示内容,我们还可以调整jvm堆的设置,尽情探索吧~

三、BTrace

获取返回值,参数等信息

1.测试代码

public class JdkTest { public int sum(int a, int b) { return a + b; }  public static void main(String[] args) { JdkTest t = new JdkTest(); System.out.println(t.sum(10, 20)); } }

2.BTrace代码

@BTrace public class TracingScript { /* put your code here */ @OnMethod( clazz="com.test.JdkTest", method="sum", location=@Location(Kind.RETURN))  public static void func(@Self com.test.JdkTest instance,int a, int b, @Return int result){ println("调用堆栈:"); jstack(); println(strcat("方法参数A:",str(a))); println(strcat("方法参数B:",str(b))); println(strcat("方法结果:",str(result))); } }

你可能感兴趣的:(java开发类,服务器类)