一. JVM内存模型:

Jvm内存模型是学好Java很重要的一部分,该部分学习能让我们在系统运维的时候,或者优化服务器的时候能够有方法,懂原理。

二. Jvm关键参数:

1. 堆大小设置参数:

-Xms -Xmx 这个参数是设置堆最大值与最小值。

在线上常常将这两个值设置成一样大,免去JVM调整堆大小影响性能,一般该值设置为服务器可用内存的的最大值80%。

-Xmn 这个参数是设置年轻代大小,SUN官方推荐该值配置为整个堆得3/8。

-XX:PermSize  这个参数是设置非堆内存的初始值, 默认是物理内存的1/64。

-XX:MaxPermSize 这个参数是设置最大的非堆内存,默认是物理内存的1/4。

如果程序中有比较大的文件导出时,一定要把这两个值设置上,否则可能会报内存溢出异常。

如果这个区有内存溢出的情况,大量使用反射有可能会引起该异常。

有一个比较好的解决方法:增加或增大:-XX:MaxPermSize=XXXM

增强版解决方法:-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

-server 服务器模式,默认是-client模式,请务必作为第一个参数。

-XX:SurvivorRatio  这个参数是设置Eden和Survivor区的大小比例。

-Xss  这个参数是设置每个线程的栈大小,一般设置不易超过1M大小,否则容易报异常内存溢出。

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/xmail/errorLog  这个参数是设置JVM崩溃的时候会打印出heap dump。

-XX:+AggressiveOpts  这个参数是设置JDK版本升级时,你的JVM都会使用最新加入的优化技术。

-Djava.awt.headless=true  这个参数是解决图表不兼容问题,一般放在最后设置。

JVM内存模型和关键参数设置的更多相关文章

  1. jvm内存模型及分配参数

    jvm内存模型 程序计数器:是一块很小的内存空间.当线程数量超过cpu数量时,线程之间根据时间片轮询抢夺cpu资源.每一个线程都必须用一个独立的程序计数器,用于记录下一条要运行的指令. java虚拟机 ...

  2. java jvm内存管理/gc策略/参数设置

    1. JVM内存管理:深入垃圾收集器与内存分配策略 http://www.iteye.com/topic/802638 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想 ...

  3. jvm内存模型、常见参数及调优

    JVM内存结构: 主要分为:方法区.堆.虚拟机栈.本地方法栈.程序计数器,其中方法区和堆是线程共享的,其他的都是线程隔离的. 方法区: 主要存放类的信息.静态变量.常量.编译后的方法代码,永久代Per ...

  4. JVM内存模型和启动参数的关系

    今天开始接触JVM的内存模型这一块的内容,以下这张图是从网上找的,先收藏了,虽然现在还看不太懂.以后弄懂了才进行详细的解说.

  5. JVM内存模型及配置参数

    JVM 分为堆.栈.方法区.程序计数器.本地方法栈 栈内存存放局部变量表.操作栈.动态链接.方法出口等信息 1.  局部变量表存放了编译期可知的各种基本数据类型(boolean.byte.char.s ...

  6. 记录JVM内存模型,参数含义和优化

    一.JVM内存模型 (图片来自网络) 根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老代) Perm (永久代) 其中New和Tenured属于堆内存,堆内存会从J ...

  7. 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

    VM基本是BAT面试必考的内容,今天我们先从JVM内存模型开启详解整个JVM系列,希望看完整个系列后,可以轻松通过BAT关于JVM的考核. BAT必考JVM系列专题 1.JVM内存模型 2.JVM垃圾 ...

  8. JVM内存模型和性能优化 转

    JVM内存模型和性能优化 JVM内存模型优点 内置基于内存的并发模型:      多线程机制 同步锁Synchronization 大量线程安全型库包支持 基于内存的并发机制,粒度灵活控制,灵活度高于 ...

  9. JVM内存模型和性能优化

    JVM内存模型优点 内置基于内存的并发模型:      多线程机制 同步锁Synchronization 大量线程安全型库包支持 基于内存的并发机制,粒度灵活控制,灵活度高于数据库锁. 多核并行计算模 ...

随机推荐

  1. 【项目】UICollectionView 对象自定

    陈述一下简单流程: 1.首先定义:UICollectionViewFlowLayout 2.初始化UICollectionView 3.注册复用的cell,定义她们的reuseIndefinite 4 ...

  2. js006-面向对象的程序设计

    js006-面向对象的程序设计 面向对象(Object-Oriented,OO)的语言有一个标志,那就是他们都有类的概念.而通过类可以创建多个具有相同属性和方法的对象. ECMA-262把对象定义为: ...

  3. 使用css3进行增强

      使用css3进行增强 1,为元素创建圆角 border-radius:25px; .about img{ border: 5px solid #bebebe; float: left; margi ...

  4. sql 列转行 实例

    select * from dbo.orders  group by  custid  with cube    select custid ,row_number() over(order by e ...

  5. rdesktop in linux

    rdesktop -f -a 16 -u administrator -p passwrod feelamcheung 192.168.0.2:8080

  6. SOCKADDR_IN

    在windows/linux下有下面结构: sockaddr结构 struct sockaddr { unsigned short sa_family;/*addressfamily,AF_xxx*/ ...

  7. PHP----Ajax异步请求

    需要两个PHP页面:1.php是发出请求和接受请求结果的.2.php是处理请求的结果. 1.php中代码: <a href="#" onclick="sendAja ...

  8. servlet中的相对路径和绝对路径 及/, ./, ../的区别

    ./ 当前目录../ 父级目录/ 根目录资源寻找都是依靠路径,资源存储方式是按照哈希表运算的,所以路径的计算其实就是哈希值的计算. servlet中,所有路径的配置都要用绝对路径. 什么是绝对路径,就 ...

  9. Python之路【第十二篇】前端之js&dome&jQuery

    JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果.通常JavaScript脚本是通过嵌入在HTML中来实现 ...

  10. SICP— 第一章 构造过程抽象

    SICP  Structure And Interpretation Of Computer Programs 中文第2版 分两部分  S 和 I 第一章 构造过程抽象 1,程序设计的基本元素 2,过 ...