博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[深入理解Java虚拟机] 第4、5章 性能监控与调优
阅读量:2342 次
发布时间:2019-05-10

本文共 870 字,大约阅读时间需要 2 分钟。

文章目录

JDK的命令行工具

jps:虚拟机进程状况工具

可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier,LVMID)

jstat:虚拟机统计信息监视工具

用于监视虚拟机各种运行状态信息的命令行工具;

jinfo:Java配置信息工具

实时地查看和调整虚拟机各项参数。使用jps命令的-v参数可以查看虚拟机启动时显式指定的参数列表

jmap:Java内存映像工具

用于生成堆转储快照(一般称为heapdump或dump文件)

jhat:虚拟机堆转储快照分析工具

与jmap搭配使用,来分析jmap生成的堆转储快照

jstack:Java堆栈跟踪工具

用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)

HSDIS:JIT生成代码反汇编

HSDIS是一个Sun官方推荐的HotSpot虚拟机JIT编译代码的反汇编插件,它的作用是让HotSpot的-XX:+PrintAssembly指令调用它来把动态生成的本地代码还原为汇编代码输出,同时还生成了大量非常有价值的注释,这样我们就可以通过输出的代码来分析问题。

JDK的可视化工具

JConsole:Java监视与管理控制台

一种基于JMX的可视化监视、管理工具。它管理部分的功能是针对JMX MBean进行管理

VisualVM:多合一故障处理工具

不需要被监视的程序基于特殊Agent运行,因此它对应用程序的实际性能的影响很小,使得它可以直接应用在生产环境中。


调优案例

  • 高性能硬件上的程序部署策略

    在高性能硬件上部署程序,目前主要有两种方式:

    • 通过64位JDK来使用大内存。
    • 使用若干个32位虚拟机建立逻辑集群来利用硬件资源。
  • 集群间同步导致的内存溢出

  • 堆外内存导致的溢出错误

  • 外部命令导致系统缓慢

  • 服务器JVM进程崩溃

  • 不恰当数据结构导致内存占用过大

  • 由Windows虚拟内存导致的长时间停顿

转载地址:http://slkvb.baihongyu.com/

你可能感兴趣的文章
【深入理解JVM虚拟机】第3章 垃圾收集器与内存分配策略
查看>>
性能优化-jvm
查看>>
性能优化-mysql
查看>>
性能优化-tomcat
查看>>
JVM内存模型、指令重排、内存屏障概念解析
查看>>
【java基础】集合框架总结
查看>>
Elasticsearch-基础介绍及索引原理分析
查看>>
【C++】二、指针数组与数组指针
查看>>
【C++】三、const与字符串
查看>>
【C++】四、重载,重写,重定义
查看>>
【C++】六、继承与多态
查看>>
特征向量的欧式距离与余弦距离——推荐算法
查看>>
cJSON源码分析3-核心解析算法
查看>>
如何正确使用C中的可变参数
查看>>
SDL2.0-简介
查看>>
SDL2.0-播放YUV文件
查看>>
leetcode 1.TwoSum--hashmap
查看>>
leetcode 14. Longest Common Prefix
查看>>
leetcode 26. Remove Duplicates from Sorted Array
查看>>
leetcode 27. Remove Element
查看>>