
jvm
文章平均质量分 92
rolin-刘瑞
技术GEEK
展开
-
JVM类加载机制
目录总结类加载器自定义类加载器双亲委托模型加载过程详解1、加载2、链接3、初始化总结类从被加载到JVM中开始,到卸载为止,整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。其中类加载过程包括加载、验证、准备、解析和初始化五个阶段。类加载器类加载器的任务就是根据一个类的全限定名来读取此类的二进制字节流到JVM中,然后转换为一个与目标类对应的java.lang.Class对象实例。BootstrapClassLoader、ExtClas原创 2021-04-11 00:02:56 · 137 阅读 · 0 评论 -
JVM实用参数(六) 吞吐量收集器
在实践中我们发现对于大多数的应用领域,评估一个垃圾收集(GC)算法如何根据如下两个标准:吞吐量越高算法越好暂停时间越短算法越好首先让我们来明确垃圾收集(GC)中的两个术语:吞吐量(throughput)和暂停时间(pause times)。 JVM在专门的线程(GC threads)中执行GC。 只要GC线程是活动的,它们将与应用程序线程(application threads)争转载 2017-11-18 12:21:26 · 6260 阅读 · 0 评论 -
JVM实用参数(七)CMS收集器
原文连接 本文连接 译者: iDestiny 校对:梁海舰HotSpot JVM的并发标记清理收集器(CMS收集器)的主要目标就是:低应用停顿时间。该目标对于大多数交互式应用很重要,比如web应用。在我们看一下有关JVM的参数之前,让我们简要回顾CMS收集器的操作和使用它时可能出现的主要挑战。就像吞吐量收集器(参见本系列的第6部分),CMS收集器处理老年代的对象,然而其操作转载 2017-11-18 14:58:48 · 6180 阅读 · 0 评论 -
JVM实用参数(八)GC日志
原文地址:https://blog.codecentric.de/en/2014/01/useful-jvm-flags-part-8-gc-logging/作者:PATRICK PESCHLOW,译者:Greenster 校对:梁海舰本系列的最后一部分是有关垃圾收集(GC)日志的JVM参数。GC日志是一个很重要的工具,它准确记录了每一次的GC的执行时间和执行结果,通过分析GC日志转载 2017-11-18 18:32:31 · 6342 阅读 · 0 评论 -
浅谈对JIT编译器的理解。
1. 什么是Just In Time编译器?Hot Spot 编译当 JVM 执行代码时,它并不立即开始编译代码。这主要有两个原因:首先,如果这段代码本身在将来只会被执行一次,那么从本质上看,编译就是在浪费精力。因为将代码翻译成 java 字节码相对于编译这段代码并执行代码来说,要快很多。当 然,如果一段代码频繁的调用方法,或是一个循环,也就是这段代码被多次执行,那转载 2017-11-16 18:58:25 · 6547 阅读 · 0 评论 -
JVM实用参数(一)JVM类型以及编译器模式
原文地址:https://blog.codecentric.de/en/2012/07/useful-jvm-flags-part-1-jvm-types-and-compiler-modes/译者:赵峰,iDestiny 校对:郭蕾现在的JVM运行Java程序(和其它的兼容性语言)时在高效性和稳定性方面做的非常出色。自适应内存管理、垃圾收集、及时编译、动态类加载、锁优化——转载 2017-11-16 18:59:24 · 6083 阅读 · 0 评论 -
JVM实用参数(二)参数分类和即时(JIT)编译器诊断
作者: PATRICK PESCHLOW 原文地址 译者:赵峰 校对:许巧辉在这个系列的第二部分,我来介绍一下HotSpot JVM提供的不同类别的参数。我同样会讨论一些关于JIT编译器诊断的有趣参数。JVM 参数分类HotSpot JVM 提供了三类参数。第一类包括了标准参数。顾名思义,标准参数中包括功能和输出的参数都是很稳定的,很可能在将来的JVM版本转载 2017-11-16 23:04:49 · 6226 阅读 · 0 评论 -
Java Mission Control-Java 性能分析工具
引言本文为 Java 性能分析工具系列文章第三篇,这里将介绍如何使用 Java 任务控制器 Java Mission Control 深入分析 Java 应用程序的性能,为程序开发人员在使用 Java 任务控制器的时候提供帮助。第一篇:操作系统工具,第二篇:Java 内置监控工具。JMC 是在 JAVA 7u40 发布中加入的性能监控工具。使用过 JDK 6 中 JRockit JVM 的...转载 2018-08-28 18:50:09 · 8400 阅读 · 0 评论 -
使用Eclipse Memory Analyzer Tool(MAT)分析线上故障(一) - 视图&功能篇
Eclipse Memory Analyzer Tool(MAT)是一个强大的基于Eclipse的内存分析工具,可以帮助我们找到内存泄露,减少内存消耗。 工作中经常会遇到一些内存溢出、内存泄露等问题,同时还可能导致CPU使用率也很高,因为在频繁的进行GC垃圾回收,这时候就需要分析导致问题的原因,MAT是一个比较好用的工具,但刚开始使用时对于其提供的一些功能还是不太了解,故在此总结...转载 2019-06-17 21:46:47 · 7159 阅读 · 0 评论 -
JVM实用参数(五)新生代垃圾回收
原文链接 作者: PATRICK PESCHLOW ;译者:严亮本部分,我们将关注堆(heap) 中一个主要区域,新生代(young generation)。首先我们会讨论为什么调整新生代的参数会对应用的性能如此重要,接着我们将学习新生代相关的JVM参数。单纯从JVM的功能考虑,并不需要新生代,完全可以针对整个堆进行操作。新生代存在的唯一理由是优化垃圾回收(GC)的性能。更具体说转载 2017-11-18 09:39:07 · 6116 阅读 · 0 评论 -
JVM实用参数(四)内存调优
原文地址,译文地址,作者:PATRICK PESCHLOW,译者:郑旭东 校对:梁海舰理想的情况下,一个Java程序使用JVM的默认设置也可以运行得很好,所以一般来说,没有必要设置任何JVM参数。然而,由于一些性能问题(很不幸的是,这些问题经常出现),一些相关的JVM参数知识会是我们工作中得好伙伴。在这篇文章中,我们将介绍一些关于JVM内存管理的参数。知道并理解这些参数,将对开发者和转载 2017-11-17 23:12:27 · 6286 阅读 · 0 评论 -
理解垃圾回收算法
来自Atomic Object公司的Ken Fox为了解释各种垃圾回收算法,开发了一个小工具,用于对各种垃圾回收算法进行可视化演示。这个工具通过动画的形式展示了垃圾回收算法的执行过程,让人非常直观地了解这些复杂算法背后的原理。这篇文章最早由Ken Fox于2014年9月3号发表在Atomic Spin博客上,以下译文已获得源网站的翻译授权。原文链接“Visualizing Garbage转载 2017-03-31 20:27:26 · 6218 阅读 · 0 评论 -
JVM调优系列:(一)什么是JVM
SUN的JDK从1.3.1开始使用HotSpot虚拟机技术,主要使用C++实现,JNI接口部分用C实现.Java原先是把源代码编译为字节码在虚拟机执行,这样执行速度较慢.而HotSpot编译器将常用的部分代码编译为本地(native)代码,这样显著高了性能.HotSpot包括一个解释器和两个编译器,解释与编译混合执行模式,默认启动解释执行。编译器:java源代码被编译器编译转载 2017-06-23 18:50:50 · 6202 阅读 · 0 评论 -
JVM调优系列:(二)JVM运行时数据区域
1) Method Area2) Heap3) Java Stacks4) PC Registers5) Native Method Stacks Java的JVM的内存模型大致可分为3个区:堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆转载 2017-06-23 18:51:22 · 6144 阅读 · 0 评论 -
JVM调优系列:(三)类加载和执行机制
类加载机制JVM的类加载是通过ClassLoader及其子类来完成的,类的层次关系和加载顺序可以由下图来描述:每个ClassLoader加载Class的过程是:1.检测此Class是否载入过(即在cache中是否有此Class),如果有到8,如果没有到22.如果parent classloader不存在(没有parent,那parent一定是bootst转载 2017-06-24 18:54:51 · 6152 阅读 · 0 评论 -
JVM调优系列:(四)GC垃圾回收
跟踪收集算法:复制(copying):将堆内分成两个相同空间,从根(ThreadLocal的对象,静态对象)开始访问每一个关联的活跃对象,将空间A的活跃对象全部复制到空间B,然后一次性回收整个空间A。因为只访问活跃对象,将所有活动对象复制走之后就清空整个空间,不用去访问死对象,不需要标记骤,所以遍历空间的成本较小,但需要巨大的复制成本和较多的内存。标记清除(mark-sweep):转载 2017-06-25 22:48:52 · 6465 阅读 · 0 评论 -
JVM调优系列:(五)JVM常用调试参数和工具
JVM常用调试参数:–verbose:gc在虚拟机发生内存回收时在输出设备显示信息-Xloggc:filename把GC相关日志信息记录到文件以便分析-XX:-HeapDumpOnOutOfMemoryError当首次遭遇OOM时导出此时堆中相关信息-XX:OnError=";" 出现致命ERROR之后运行自定义命令-XX:-PrintClassHistog转载 2017-06-25 22:49:25 · 6323 阅读 · 0 评论 -
非常详细GC学习笔记
GC学习笔记这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转到这里。一、GC特性以及各种GC的选择1、垃圾回收器的特性2、对垃圾回收器的选择2.1 连续 VS. 并行2.2 并发 VS. stop-the-world2.3 压缩 VS. 不压缩 VS. 复制二、GC性能指标三、分代回收转载 2017-06-26 22:43:38 · 6209 阅读 · 0 评论 -
JVM实用参数(三)打印所有XX参数及值
原文地址:https://blog.codecentric.de/en/2012/07/useful-jvm-flags-part-3-printing-all-xx-flags-and-their-values/译者:李洪柱 校对:方腾飞本篇文章基于Java 6(update 21oder 21之后)版本, HotSpot JVM 提供给了两个新的参数,在JVM启动后,在转载 2017-11-17 22:23:03 · 6082 阅读 · 0 评论 -
JVM原理和优化详解
JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境.1.创建JVM装载环境和配置2.装载JVM.dll3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例4.调用JNIEnv实例装载并处理class类。在我们运行和调试Java程序的时候,经常会提到一个JVM的概念.JVM是J转载 2014-08-06 09:21:24 · 7149 阅读 · 1 评论