jvmxmx和xms参数分析(设定优化校准)

XmnXmsXmxXss有什么区别Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。-Xms堆内存的最小大小,默认为物理内存的1/64-Xmx堆内存的最大大小,默认为物理内存的1/4-Xmn堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn-Xss设置每个线程可使用的内存大小,即…

大家好,又见面了,我是你们的朋友全栈君。

XmnXmsXmxXss有什么区别

Xmn、Xms、Xmx、Xss都是JVM对内存的配置参数,我们可以根据不同需要区修改这些参数,以达到运行程序的最好效果。

-Xms 堆内存的初始大小,默认为物理内存的1/64

-Xmx 堆内存的最大大小,默认为物理内存的1/4

-Xmn 堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn

-Xss 设置每个线程可使用的内存大小,即栈的大小。在相同物理内存下,减小这个值能生成更多的线程,当然操作系统对一个进程内的线程数还是有限制的,不能无限生成。线程栈的大小是个双刃剑,如果设置过小,可能会出现栈溢出,特别是在该线程内有递归、大的循环时出现溢出的可能性更大,如果该值设置过大,就有影响到创建栈的数量,如果是多线程的应用,就会出现内存溢出的错误。


除了这些配置,JVM还有非常多的配置,常用的如下:

  1. 堆设置
    • -Xms:初始堆大小
    • -Xmx:最大堆大小
    • -Xmn:新生代大小
    • -XX:NewRatio:设置新生代和老年代的比值。如:为3,表示年轻代与老年代比值为1:3
    • -XX:SurvivorRatio:新生代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:为3,表示Eden:Survivor=3:2,一个Survivor区占整个新生代的1/5  
    • -XX:MaxTenuringThreshold:设置转入老年代的存活次数。如果是0,则直接跳过新生代进入老年代
    • -XX:PermSize-XX:MaxPermSize:分别设置永久代最小大小与最大大小(Java8以前)
    • -XX:MetaspaceSize-XX:MaxMetaspaceSize:分别设置元空间最小大小与最大大小(Java8以后)
  2. 收集器设置
    • -XX:+UseSerialGC:设置串行收集器
    • -XX:+UseParallelGC:设置并行收集器
    • -XX:+UseParalledlOldGC:设置并行老年代收集器
    • -XX:+UseConcMarkSweepGC:设置并发收集器
  3. 垃圾回收统计信息
    • -XX:+PrintGC
    • -XX:+PrintGCDetails
    • -XX:+PrintGCTimeStamps
    • -Xloggc:filename
  4. 并行收集器设置
    • -XX:ParallelGCThreads=n:设置并行收集器收集时使用的CPU数。并行收集线程数。
    • -XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间
    • -XX:GCTimeRatio=n:设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)
  5. 并发收集器设置
    • -XX:+CMSIncrementalMode:设置为增量模式。适用于单CPU情况。
    • -XX:ParallelGCThreads=n:设置并发收集器新生代收集方式为并行收集时,使用的CPU数。并行收集线程数。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/125530.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • jmeter并发接口测试教程_jmeter高并发测试

    jmeter并发接口测试教程_jmeter高并发测试jmeter并发测试实例,测试项目结构图如下:1.新建测试计划,选中测试计划,右键,添加线程组2.添加配置元件-用户定义的变量,用来放置ip和端口参数3.添加配置元件-CSV数据文件设置,将测试数据存在csv文件中,配置路径和需要读取的参数并发测试是模拟多个用户同一时间进行同一个操作,所以需要创建真实的用户数据,这里的真实不是指用户数据的真实性(比如手机号和身份证真实…

  • C#实现一个局域网文件传输工具

    C#实现一个局域网文件传输工具工作需要,经常会在工作的台式机和笔记本之间传文件或者需要拷贝文本,两个机器都位于局域网内,传文件或者文本的方式有很多种,之前是通过共享文件夹来进行文件的拷贝,或者通过SVN进行同步。文本传递比较简单,可以通过两台机器上装QQ登两个号码,或者在共享目录下建一个TXT,或者发电子邮件等等。不过上面这些方法总觉得不直接,所以想基于P2P做一个小的局域网文件和文字传输小工具。WinForm的工程,

  • 腾讯ssl 免费证书_腾讯云ssl证书安装教程

    腾讯ssl 免费证书_腾讯云ssl证书安装教程项目收尾,闲下来捣腾捣腾微信小程序,配置request域名的时候发现需要https协议,意思就是请求服务端必须是HTTPS,当然,如果你只是自己玩一玩小程序开发,不上线,也可以通过微信开发者工具设置使用普通http请求来让自己过把瘾。大部分ssl证书都需要money,对于个人开发者成本有点高,像我这种穷屌当然是想方设法去找免费的ssl。推荐一篇博文,里面罗列了大部分免费的ssl证书认证点击打开链接…

  • 软件project(五)——可行性研究[通俗易懂]

    软件project(五)——可行性研究

  • 数据的本质是什么?数据的表现形式有哪些?_大数据本质是什么答案

    数据的本质是什么?数据的表现形式有哪些?_大数据本质是什么答案2010年,“数据科学家”这个称谓的发明者帕蒂尔(DJPatil)和杰夫·哈默巴赫(JeffHammerbacher)认为,一切应该以产品为中心,从数据获取、数据清洗、搭建和管理数据设施、原型开发、产品设计等方面,去实践数据的价值。一、一场以大数据为核心的智能盛宴时下仿佛大家都在谈人工智能,就像当年人人都在谈大数据一样。在不同场合上,阿里巴巴的马云、百度的李彦宏及腾讯的马化腾分别谈过自己…

  • python写文件追加 按行追加_python 追加写入

    python写文件追加 按行追加_python 追加写入匹配文本并追加内容

    2022年10月10日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号