
JVM/性能调优
文章平均质量分 86
May的博客
这个作者很懒,什么都没留下…
展开
-
【JVM性能调优】jstack和线程dump分析
一、几个概念: 1、jstack命令的语法格式:jstack <pid>,可用于查看java进程id。 2、Dump文件:Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专门的工具软件打开,比如使用Windbg。 在Windbg中可以通过.dump命令保存进程的du...原创 2018-02-22 21:27:59 · 53589 阅读 · 1 评论 -
【深入理解JVM】JVM字节码指令集
Java 虚拟机的指令由一个字节长度的、代表着某种特定操作含义的操作码(Opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(Operands)所构成。虚拟机中许多指令并不包含操作数,只有一个操作码。如果忽略异常处理,那 Java 虚拟机的解释器使用下面这个伪代码的循环即可有效地工作:do{ 自动计算PC寄存器以及从PC寄存器的位置取出操作码; if(存在操作数)取出操作数; 执行操转载 2016-03-13 22:27:46 · 1758 阅读 · 1 评论 -
【深入理解JVM】ClassLoader类加载机制
Java程序并不是一个原生的可执行文件,而是由许多独立的类文件组成,每一个文件对应一个Java类。此外,这些类文件并非立即全部装入内存的,而是根据程序需要装入内存。ClassLoader专门负责类文件装入到内存。在class文件中描述的各种信息,最终都需要被加载到虚拟机中之后,才能被运行和使用。虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换,解析和初始化,最终形成可以被虚拟机原创 2016-03-13 22:53:59 · 2502 阅读 · 0 评论 -
【深入理解JVM】Java类文件的基本结构
Java类文件(.class文件)是一个为已编译Java程序仔细定义的格式。Java源代码被编译成能够被任何JVM加载和执行的类文件。在被JVM加载之前,类文件可能是由网络传输而来。类文件是独立于底层平台的,所以适用于更多的地方。它们由简洁的JVM字节码组成,这样就能轻装上阵。类文件常常被压缩,以极快的速度通过网络,到达世界各地的JVM。类文件里有什么?Java类文件包含JVM需要知道的关于一个Ja转载 2016-03-13 22:55:59 · 733 阅读 · 0 评论 -
【深入理解JVM】JVM内存模型
JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。而其他的数据依赖于每一个线程,在线程创建时创建,在线程退出时销毁。1、程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。由于Java 虚拟机的多线程是通过线程轮流切换并分配处理原创 2016-03-14 12:37:44 · 631 阅读 · 0 评论 -
【深入理解JVM】JVM垃圾回收机制
最近又回头翻了翻《java编程思想》。有关垃圾回收机制的问题还没有总结过,刚好今天周六,总结一下吧。1、垃圾回收的目的垃圾回收的目的是查找和回收(清理)无用的对象,以便让JVM更有效的使用内存。由于有垃圾回收机制,java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄漏,有效的使用空闲的内存。注意:内存泄漏是指该内存空间使用完毕之后未回收,在不涉及复杂数据原创 2016-09-03 12:32:23 · 1805 阅读 · 0 评论 -
【Apache JMeter】JMeter接口压测实例
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测 试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、 数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的 强度和分析整体性能。另原创 2018-02-03 21:06:59 · 1308 阅读 · 0 评论 -
【Java VisualVM】使用 VisualVM 进行性能分析及调优
一、概述开发大型 Java 应用程序的过程中难免遇到内存泄露、性能瓶颈等问题,比如文件、网络、数据库的连接未释放,未优化的算法等。随着应用程序的持续运行,可能会造成整个系统运行效率下降,严重的则会造成系统崩溃。为了找出程序中隐藏的这些问题,在项目开发后期往往会使用性能分析工具来对应用程序的性能进行分析和优化。VisualVM 是一款免费的性能分析工具。它通过 jvmstat、JMX、SA(原创 2018-02-06 20:52:36 · 3168 阅读 · 0 评论 -
【JVM性能调优】使用jstack找出最耗CPU的java线程
jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体的代码,所以它在JVM性能调优中很常见。下面我们在找出某个java进程中最耗CPU的线程,并定位堆栈信息,使用到的命令有:ps、top、printf、jstack、grep。1、使用top -c命令查看占用CPU最高的java进程#top -c2、查看CPU占用最高的线程(1)#top -Hp 9179 -d...原创 2018-02-01 21:21:21 · 4697 阅读 · 0 评论 -
【深入理解JVM】JVM概述
1、什么是JVMJVM全称是Java Virtual Machine(java虚拟机)。它之所以被称之为是“虚拟”的,就是因为它仅仅是由一个规范来定义的抽象计算机。我们平时经常使用的Sun HotSpot虚拟机只是其中一个具体的实现(另外还有BEA JRockit、IBM J9等等虚拟机)。JVM的设计目标是提供一个基于抽象规格描述的计算机模型,为解释程序开发人员提供很好的灵活性,同时也确保Java原创 2016-03-13 22:18:15 · 1423 阅读 · 1 评论