JVM
吴孟达
关注微信公众号"程序员达叔",免费领取海量学习资料
展开
-
奇妙的GC案例分享两则
一、20秒的young gc了解一下开门见山↓,图1惊讶之余,我们一起探探究竟。首先要会看gc log,一图胜千言↓图2有个细节很关键,user(用户耗时)+sys(系统耗时) <real(真实耗时)。再来看下,每个耗时的具体口径↓1、real time:GC事件整个过程自然流逝的绝对时间,这个跟钟表上的时间是一致的。(如果GC从10点开始,10点30...原创 2019-12-22 18:59:24 · 663 阅读 · 0 评论 -
聊聊cms GC中的concurrent mode failure
在上一篇,耗时20多秒的young gc,你见过吗?的结尾,给大家预告了一个有趣的case,现在开始分享一下。直接上图↓图1从红框1中,可以看到cms full gc开始进行初始化标记了,紧接着在红框二处,开始了并发标记,说到这里,再贴个好图,帮大家回忆一下cms的几个阶段↓图2言归正传,图1红框3中,可以看到,有7次由于新生代空间不足,导致allocation...原创 2019-12-22 18:37:25 · 4242 阅读 · 3 评论 -
耗时20多秒的young gc,你见过吗?
开门见山↓,图1惊讶之余,我们一起探探究竟。首先要会看gc log,一图胜千言↓图2有个细节很关键,user(用户耗时)+sys(系统耗时) <real(真实耗时)。再来看下,每个耗时的具体口径↓1、real time:GC事件整个过程自然流逝的绝对时间,这个跟钟表上的时间是一致的。(如果GC从10点开始,10点30结束,real ...原创 2019-12-14 18:25:57 · 1326 阅读 · 0 评论 -
浅析Java虚拟机结构与机制
本文旨在给所有希望了解JVM(Java Virtual Machine)的同学一个概念性的入门,主要介绍了JVM的组成部分以及它们内部工作的机制和原理。当然本文只是一个简单的入门,不会涉及过多繁杂的参数和配置,感兴趣的同学可以做更深入的研究,在研究JVM的过程中会发现,其实JVM本身就是一个计算机体系结构,很多原理和我们平时的硬件、微机原理、操作系统都有十分相似的地方,所以学习JVM本身也是加深自转载 2015-03-22 22:54:21 · 1054 阅读 · 0 评论 -
浅析JVM垃圾回收机制
首先我们需要知道Java的内存分配与回收全部由JVM垃圾回收机制自动完成。每种JVM实现可能采用不同的方法实现垃圾回收机制。在收购SUN之前,Oracle使用的是JRockit JVM,收购之后使用HotSpot JVM。目前Oracle拥有两种JVM实现并且一段时间后两个JVM实现会合二为一。HotSpot JVM是目前Oracle SE平台标准核心组件的一部分。市面上探讨垃圾回收机制,默认都是原创 2015-04-05 19:21:30 · 6030 阅读 · 0 评论 -
JVM参数优化指南
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms355转载 2015-09-18 13:59:23 · 1177 阅读 · 0 评论 -
Java内存模型
java并发采用的是共享内存模型,线程之间的通信对程序员来说是透明的,内存可见性问题很容易困扰着java程序员,今天我们就来揭开java内存模型的神秘面纱。在揭开面纱之前,我们需要认识几个基础概念:内存屏障(memory Barriers),指令重排序,happens-before规则,as-if-serial语义。什么是 Memory Barrier(内存屏障)?内存屏障,又称内存栅栏,是一个CP转载 2017-03-15 11:51:28 · 812 阅读 · 0 评论