当前位置: 首页 > 科技观察

JDK自带的Exes这么多,你都试过了吗?

时间:2023-03-12 16:55:23 科技观察

本文转载自微信公众号《Java极客技术》,作者鸭血范。转载本文请联系Java极客技术公众号。说起JVM面试,JVM是三年必问的经典知识点,而且这个知识点是最重要的知识点。如果你知道这些内容,那么在后面的面试中对你会有好处。喊个好价钱。至于JVM和垃圾回收算法的分析,阿粉这里就不给大家讲解了。有兴趣的可以看看阿芬发表的这些文章。性能监控工具我们在刚学Java的时候都安装了Java。不管是直接安装版还是复制解压版,大家在JDK中都可以使用.exe程序的安装目录下找到一些exe程序,而这些exe程序中有很多是我们不知道的性能监控工具不太注意。你可以看看里面的exe。有没有觉得Sun有时候很强大,给大家带来各种隐藏的好处,比如我们下面要说的JVM调优工具,就是Jconsole,还有一些比如jstack:显示虚拟机的线程快照jps:虚拟机进程状态工具JConsole:JMX可视化管理工具VisualVM:All-in-onefaultmanagementtool(一个爱好者认为最牛逼的工具)关于使用,下面我们就一一讲起吧我们最关心的JVM调优。JVM调优工具主要的调优工具有JDK自带的工具,也有收费的外部工具。大致有这么几种。Jconsole、jProfile、VisualVM。Jconsole:jdk自带,功能简单,但当系统有一定负载时可以使用。垃圾收集算法有非常详细的跟踪。JProfiler:这是一款需要额外付费的商业软件,功能强大(payforit)。VisualVM:JDK自带,功能强大,类似JProfiler。也正因为阿芬不认识这几个工具,从来没有用过,还被公司的小哥们嘲笑了一顿。看看这个工具。费用我来管,反正比不上免费卖淫。然后再看看Jconsole和VisualVM。VisualVM:你可以看看左边。它显示您正在运行的程序。pid是15908,端口号是我的。它一定不是你的,但你可以将其用作参考。VisualVM可以根据需要安装不同的插件,每个插件的侧重点不同,有的主要监控GC,有的主要监控内存,有的监控线程等。比如看下图:如果你不在这里看到它,只需单击它即可查看最新版本。所有可用的插件将显示在可用插件中。我们双击一个内容进去看看:这里可以监控各种堆栈信息,这个工具和Jconsole大家都经常用到,除了一些高大上喜欢用第三方的,但是阿芬也没怎么用过,毕竟公司不大,东西也没有那么多。看到问题解决就好了。让我们再来看看JConsole。JConsole:一个JMX可视化管理工具。它是一个javaGUI监控工具,可以图形形式显示各种数据。并且可以通过远程连接监控远程服务器VM。java编写的GUI程序用于监控VM,可以监控远程VM。它非常易于使用并且具有非常强大的功能。在我们看到的进程信息中,只要点击它,就可以看到它也有和VisualVm一样的内容,比如堆内存的使用;内存池“PSOldGen”和我们的类路径,库路径,还有Vm的参数等等,都很好。jps(JavaVirtualMachineProcessStatusTool):虚拟机进程状态工具说实话,自从装了JDK,阿芬还真没怎么注意这个jps,毕竟只是输出进程运行的状态信息在JVM中。语法说其实很简单,我给大家说说:jps[options][hostid]options里面有很多选项,比如q:不输出类名,Jar名和传递给main的参数方法,只输出VM标识m:输出传入main方法的参数l:输出完整的包名,应用主类名,jar的完整路径名v:输出jvm参数,然后hostid更好说的,主机或者服务器的id,如果你什么都没有写,那就默认了。如下图:有兴趣的可以自己试试,很有意思。jstack:stacktracetool这个工具也很不错,我们给他一个java进程ID,它就会帮我们打印出Java堆栈信息。而且他的语法也很简单:jstack[-l]pid,说实话我比较喜欢VisualVM,还能看到堆栈信息。至于如何选择,就看你需要什么了?