JVM内存模型(一)
|
收集器
|
适用的代
|
采用的收集算法
|
适用的模式
|
串行、并行、并发
|
目标
|
|
Serial
|
Young
|
复制
|
Client
|
用户线程停止,收集线程串行
|
GC时停顿时间少
|
|
ParNew(Parallel New Generation)
|
Young
|
复制
|
Server
|
用户线程停止,收集线程并行
|
GC时停顿时间少
|
|
Parallel Scavenge
|
Young
|
复制
|
用户线程停止、收集线程并行
|
吞吐量尽可能大
|
|
|
CMS
|
Old
|
标记-清除
|
用户线程和收集线程均在执行,前者不用停止
|
GC时停顿时间少
|
|
|
Serial Old(MSC)
|
Old
|
标记-整理
|
Client、Server
|
用户线程停止,收集线程串行
|
GC时停顿时间少
|
|
Parallel Old
|
Old
|
标记-整理
|
用户线程停止,收集线程并行
|
吞吐量尽可能大
|
|
|
G1
|
Young、Old
|
标记-整理
|
Server
|
用户线程和收集线程均在执行,前者不用停止
|
GC时停顿时间少
|
JVM内存模型(一)的更多相关文章
- JVM内存模型、指令重排、内存屏障概念解析
在高并发模型中,无是面对物理机SMP系统模型,还是面对像JVM的虚拟机多线程并发内存模型,指令重排(编译器.运行时)和内存屏障都是非常重要的概念,因此,搞清楚这些概念和原理很重要.否则,你很难搞清楚哪 ...
- JVM内存模型和性能优化 转
JVM内存模型和性能优化 JVM内存模型优点 内置基于内存的并发模型: 多线程机制 同步锁Synchronization 大量线程安全型库包支持 基于内存的并发机制,粒度灵活控制,灵活度高于 ...
- JVM内存模型和性能优化
JVM内存模型优点 内置基于内存的并发模型: 多线程机制 同步锁Synchronization 大量线程安全型库包支持 基于内存的并发机制,粒度灵活控制,灵活度高于数据库锁. 多核并行计算模 ...
- JVM初探 -JVM内存模型
JVM初探 -JVM内存模型 标签 : JVM JVM是每个Java开发每天都会接触到的东西, 其相关知识也应该是每个人都要深入了解的. 但接触了很多人发现: 或了解片面或知识体系陈旧. 因此最近抽时 ...
- JVM内存模型和关键参数设置
一. JVM内存模型: Jvm内存模型是学好Java很重要的一部分,该部分学习能让我们在系统运维的时候,或者优化服务器的时候能够有方法,懂原理. 二. Jvm关键参数: 1. 堆大小设置参数: -Xm ...
- 记录JVM内存模型,参数含义和优化
一.JVM内存模型 (图片来自网络) 根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老代) Perm (永久代) 其中New和Tenured属于堆内存,堆内存会从J ...
- 【转】JVM内存模型
http://longdick.iteye.com/blog/473866 图解JVM内存模型 博客分类: JVM JVM活动SUN /** * 转载请注明作者longdick http:/ ...
- jvm内存模型和内存分配
1.什么是jvm? (1)jvm是一种用于计算设备的规范,它是一个虚构出来的机器,是通过在实际的计算机上仿真模拟各种功能实现的. (2)jvm包含一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和 ...
- JVM的stack和heap,JVM内存模型,垃圾回收策略,分代收集,增量收集
(转自:http://my.oschina.net/u/436879/blog/85478) 在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我们从JVM的内存管理原理的角度来认 ...
- Java基础知识强化100:JVM 内存模型
一. JVM内存模型总体架构图: 方法区和堆由所有线程共享,其他区域都是线程私有的 二. JVM内存模型的结构分析: 1. 类装载器(classLoader) 类装载器,它是在java虚拟机中用途是 ...
随机推荐
- 生成输出 URL(16.2)
1.在视图中生成输出 URL 几乎在每一个 MVC 框架应用程序中,你都会希望让用户能够从一个视图导航到另一个视图 —— 通常的做法是在第一个视图中生成一个指向第二个视图的链接,该链接以第二个视图的动 ...
- springboot + swagger的实体类属性注解
@Api:用在类上,说明该类的作用 @ApiOperation:用在方法上,说明方法的作用 @ApiImplicitParams:用在方法上包含一组参数说明 @ApiImplicitParam:用在@ ...
- JavaScript学习总结(十八)——JavaScript获取浏览器类型与版本
从网上找到一段使用JavaScript判断浏览器以及浏览器版本的比较好的代码,在此记录一下: 1 <script type="text/javascript"> 2 v ...
- HMM模型和Viterbi算法
https://www.cnblogs.com/Denise-hzf/p/6612212.html 一.隐含马尔可夫模型(Hidden Markov Model) 1.简介 隐含马尔可夫模型并不是俄罗 ...
- superset 安装配置
一.配置python虚拟环境,请参考 superset依赖python3.6环境 https://www.cnblogs.com/xibuhaohao/p/9994854.html 二.安装配置sup ...
- [翻译]HTTP: Let’s GET It On!
原文地址:HTTP: Let’s GET It On! 简介 几周之前,我们了解到HTTP是一个应用级的协议.现在是时候探索我们应该如何在客户端和服务端的通信之间使用这个协议了. 从网络上获取资源 记 ...
- Engineering Management
Engineering Management 工程師面對工作或挑戰時,可應用以下法則一步一步把工作規管和實施. 1. Planning 計劃 2. Organization 組織 ...
- USER 版本与ENG 版本差异
[Description] Android USER 版本与ENG 版本的差异 [Keyword] USER ENG user eng 用户版本 工程版本 差异 [Solution] Goog ...
- top command-linux下用top命令查看cpu利用率超过100%
1. 这里显示的所有的cpu加起来的使用率,说明你的CPU是多核,你运行top后按大键盘1看看,可以显示每个cpu的使用率,top里显示的是把所有使用率加起来; 2.查看CPU信息; cat ...
- python3 获取当前调用函数名
import sys funcName = sys._getframe().f_back.f_code.co_name #获取调用函数名lineNumber = sys._getframe().f_b ...