一、堆内存分布:
JAVA 分为堆内存和栈内存,GC主要针对堆内存
  1)Young: 存放新生内存对象
    1.1)Eden JVM 刚开始分配的对象
    1.2)Survivor1(from)
    1.3)Survivor2(to)两个区域一样大,Eden没有回收掉的对象会在两个区域来回拷贝,达到一定次数后移到Old。
    即该对象在Young中存留的时间。
  2)Old: 存放声明周期较长的内存对象
  3)Permanent:永久保存区,存放class和meta信息


二、垃圾回收的时机:
  1)当Eden代内存满时,会引发一次普通GC(Minor GC),该GC仅回收年轻代
  2)当年老代满时会引发Full GC,Full GC将会同时回收年轻代、年老代
  3)当永久代满时也会引发Full GC,会导致Class、Method元信息的卸载

  Full GC 消耗的时间较长,要尽量减少。

三、JVM 主要参数:
  -Xms<size> 设置JVM初始化堆内存大小
  -Xmx<size> 设置JVM最大的堆内存大小
  -Xss<size> 设置JVM栈内存大
  -Xmn<size> 设置JVM年轻代大小
  -XX:NewRatio 设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)
  -XX:SurvivorRatio= 设置年轻代中Eden区与Survivor区的大小比值
  -XX:MaxPermSize= 设置持久代大小

四、配置优化:

  参考:http://www.cnblogs.com/likehua/p/3369823.html

JVM 备注的更多相关文章

  1. JVM调优 jdk版本 机器配置 建议jvm参数 备注

    https://juejin.im/post/5b091ee35188253892389683 大型跨境电商JVM调优经历 前提:某大型跨境电商业务发展非常快,线上机器扩容也很频繁,但是对于线上机器的 ...

  2. Jvm 内存浅析 及 GC个人学习总结

    从诞生至今,20多年过去,Java至今仍是使用最为广泛的语言.这仰赖于Java提供的各种技术和特性,让开发人员能优雅的编写高效的程序.今天我们就来说说Java的一项基本但非常重要的技术内存管理 了解C ...

  3. JVM垃圾回收(GC)原理

    一.基本垃圾回收算法 1.引用计数(Reference Counting) 比较古老的回收算法.原理是此对象有一个引用则增加一个引用计数,删除一个引用则较少一个引用计数.垃圾回收时,只回收引用计数为0 ...

  4. JVM内存管理------垃圾搜集器参数精解

    本文是GC相关的最后一篇,这次LZ只是罗列一下hotspot JVM中垃圾搜集器相关的重点参数,以及各个参数的解释.废话不多说,这就开始. 垃圾搜集器文章传送门 JVM内存管理------JAVA语言 ...

  5. Java虚拟机详解----JVM常见问题总结

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  6. 【JVM】模板解释器--如何根据字节码生成汇编码?

    1.背景 仅针对JVM的模板解释器: 如何根据opcode和寻址模式,将bytecode生成汇编码. 本文的示例中所使用的字节码和汇编码,请参见上篇博文:按值传递还是按引用? 2.寻址模式 本文不打算 ...

  7. JVM系列文章(四):类载入机制

    作为一个程序猿,只知道怎么用是远远不够的. 起码,你须要知道为什么能够这么用.即我们所谓底层的东西. 那究竟什么是底层呢?我认为这不能一概而论.以我如今的知识水平而言:对于Web开发人员,TCP/IP ...

  8. JVM内存分配

    内存分配:当JVM运行起来的时候就会给内存划分空间,那么这块空间称之为运行时数据区.(备注:当一个Java源程序编译成class字节码文件之后,字节码文件里存放的都是二进制的汇编命令,当程序运行的时候 ...

  9. JVM基础学习

    public class TestJVM { // 运行时数据区[方法区.堆.程序计数器.虚拟机栈.本地方法栈] private static int _1M = 1024 * 1024; publi ...

随机推荐

  1. 使用Azure REST API创建虚拟机

    Hollis Yao, Shihao Rong  使用REST API创建虚拟机之前,首先要确保Azure订阅中已经建好了"云服务"和"存储账号".如果没有的话 ...

  2. C# 通过反射获取扩展方法

    注意,扩展方法本质上是静态方法,所以拿到MethodInfo时,应该这么调用 methodInfo.Invoke(null, new object[]{params}) static IEnumera ...

  3. 【leetcode】Median of Two Sorted Arrays

    题目简述: There are two sorted arrays A and B of size m and n respectively. Find the median of the two s ...

  4. WPF时间格式化

    日期格式化示例: <TextBox  Name="txtCreateTime" HorizontalAlignment="Left" Width=&quo ...

  5. Element-ui,Mint-ui

    style-loader css-loader style!css 饿了么团队开源一个基于vue 组件库 elementUI PC MintUI 移动端 官网: http://element.elem ...

  6. selenium使用笔记(二)——Tesseract OCR

    在自动化测试过程中我们经常会遇到需要输入验证码的情况,而现在一般以图片验证码居多.通常我们处理这种情况应该用最简单的方式,让开发给个万能验证码或者直接将验证码这个环节跳过.之前在技术交流群里也跟朋友讨 ...

  7. 【Asp.Net MVC】日常---路由

    想要这样的路由 不带id:http://test.mymong.com/Home/List.html 带id:http://test.mymong.com/Home/Del/561755ba3af24 ...

  8. ASP.NET MVC3中Controller与View之间的数据传递总结

    一.  Controller向View传递数据 1.       使用ViewData传递数据 我们在Controller中定义如下: ViewData["Message_ViewData& ...

  9. 【Python装饰者】在函数测试的作用

    [引言] 我们经常需要多函数进行耗时测试,测试方法有许多,这里介绍装饰者的方法,提高耗时测试代码的可复用性,在其他方面的应用也是如此. [设计原则] 类应该对扩展开放,对修改关闭. [代码] (1)定 ...

  10. [ACM训练] 算法初级 之 基本算法 之 枚举(POJ 1753+2965)

    先列出题目: 1.POJ 1753 POJ 1753  Flip Game:http://poj.org/problem?id=1753 Sample Input bwwb bbwb bwwb bww ...