JVM 调优常见参数

Java1.7的jvm参数查看一下官方网站。
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html
Java1.8
http://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html
Hotspotvm知识查看一下官方网站。
http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136373.html
主要的参数是:堆的大小、栈的大小、新生代和老年代的比值、新生代中eden和s0、s1的比值。
-Xms:初始堆大小,默认是物理内存的1/64。默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到--Xmx的最大限制。例如:-Xms 20m。
-Xmx:最大堆大小。默认是物理内存的1/4 默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制。
-XX:NewSize=n:设置年轻代大小(初始值)。
-XX:MaxNewSize:设置年轻代最大值。
-XX:NewRatio=n:设置年轻代和年老代的比值。
-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。
-XX:PermSize(1.8之后改为MetaspaceSize) 设置持久代(perm gen)初始值,默认是物理内存的1/64。
-XX:MaxPermSize=n:(1.8之后改为MaxMetaspaceSize)设置最大持久代大小。
-Xss:每个线程的堆栈大小。

JVM 学习思路

jdk --> java develop kit ,jre ---> java runtime environment,java 有个特点:一次编译运行,就是有这个jvm,jvm,java viturl machine
jvm ---> 一、程序隔离区,一个程序共享区 jvm -->堆---> 为了内存溢出---> gc(垃圾)--->判断(引用、可达性分析)--->最终判断生死需要两次判断(如果其中调用了finalize方法,就会复活,不会被回收)
---> 回收算法(标记+清除+整理,复制)--->选择合适的回收器(paranew + cms)--> 对象进入老年代得三种可能,---> jvm分析工具(jps,jmap,jconsole,jstat)

Java虚拟机--------JVM常见参数的更多相关文章

  1. 了解java虚拟机—JVM相关参数设置(2)

    1.   JVM相关参数设置 JVM相关配置 -XX:+PrintGC 两次次YoungGC,两次FullGC. -XX:+PrintGCDetails 打印GC时的内存,并且在程序结束时打印堆内存使 ...

  2. Java虚拟机-JVM各种参数配置大全详细

      usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xms1800M -Xmx1800M -Xmn300M -Xss512K ...

  3. 深入理解java虚拟机笔记补充-JVM常见参数设置

    JVM 常见参数设置 内存设置 参数 -Xms:初始堆大小,JVM 启动的时候,给定堆空间大小. -Xmx:最大堆大小,如果初始堆空间不足的时候,最大可以扩展到多少. -Xmn:设置年轻代大小.整个堆 ...

  4. 如何设置Java虚拟机JVM启动内存参数

    Tomcat默认的Java虚拟机JVM启动内存参数大约只有64MB或者128MB,非常小,远远没有利用现在服务器的强大内存,所以要设置Java虚拟机JVM启动内存参数.具体设置方法为: Tomcat修 ...

  5. 性能测试三十六:内存溢出和JVM常见参数及JVM参数调优

    堆内存溢出: 此种溢出,加内存只能缓解问题,不能根除问题,需优化代码堆内存中存在大量对象,这些对象都有被引用,当所有对象占用空间达到堆内存的最大值,就会出现内存溢出OutOfMemory:Java h ...

  6. Java虚拟机(JVM)知多少

    本文大量参考:https://www.cnblogs.com/lfs2640666960/p/9297176.html 概述 JVM是JRE的一部分.它是一个虚构出来的计算机,是通过在实际的计算机上仿 ...

  7. Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论

    Java虚拟机JVM学习06 自定义类加载器 父委托机制和命名空间的再讨论 创建用户自定义的类加载器 要创建用户自定义的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的f ...

  8. Java虚拟机JVM学习05 类加载器的父委托机制

    Java虚拟机JVM学习05 类加载器的父委托机制 类加载器 类加载器用来把类加载到Java虚拟机中. 类加载器的类型 有两种类型的类加载器: 1.JVM自带的加载器: 根类加载器(Bootstrap ...

  9. java虚拟机 jvm 出入java栈 栈空间内存分配

    java栈空间是一块线程私有的内存空间,java堆和程序数据密切相关,那么java栈就是和线程执行密切相关.线程最基本的执行行为就是函数的调用.每次函数调用其实是通过java栈传递数据的. 数据结构中 ...

随机推荐

  1. ES5和ES6那些你必须知道的事儿(一)

    ES5和ES6那些你必须知道的事儿 ES5新增的东西 一.数组方法 1.forEach     用途:遍历,循环 对于空数组不会执行回调函数 //用法 array.forEach( function( ...

  2. unity中将多张图片进行椭圆运动

    GameObject canvas; ; ; ; ; Dictionary<int,GO> storeItem; GameObject main; public static bool r ...

  3. curl: (48) An unknown option was passed in to libcurl怎么解决

    想装一个Python版本管理的工具pyenv.结果提示我没有curl.于是从网上百度找到了一篇博客还是不错按照操作提示都成功了.这是那篇博客的地址:https://www.cnblogs.com/su ...

  4. WWSSN instrument response

    由于科研需要,一项任务是完成观测地震图和the short-period World-Wide Standardized Seismograph Network instrument response ...

  5. eureka 服务注册与发现

    1.创建父工程来管理依赖包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:/ ...

  6. Linux下命令行cURL的10种常见用法示例

    curl的命令行工具功能非常强大,这些数据交互的功能基本上都是通过URL方式进行的,下面这篇文章主要给大家分享了在Linux中命令行cURL的10种常见用法示例,通过示例代码介绍的非常详细,需要的朋友 ...

  7. 何在mysql查找效率慢的SQL语句?

    如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启 ...

  8. VS2013/VS2015/VS2017通过oschina托管代码

    1.到http://git.oschina.net注册账号,创建项目,这一步不做详细描述,创建后效果如图 2.打开VS创建项目,为了测试,创建一个空白解决方案 3.把解决方案添加到源代码管理(这一步仅 ...

  9. 2456 Aggressive cows

    Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 23866   Accepted: 11141 ...

  10. 【leetcode】455. Assign Cookies

    problem 455. Assign Cookies solution1: But, you should give each child at most one cookie. 对小朋友的满意程度 ...