当前位置: 首页 > news >正文

JVM 性能调优参数

66b3136330af46bcb2b826d4e0fc9a92.jpgJVM分为堆内存和非堆内存

 

 

堆的内存分配用-Xms和-Xmx

 

-Xms分配堆最小内存,默认为物理内存的1/64;

 

-Xmx分配最大内存,默认为物理内存的1/4。

 

非堆内存分配用-XX:PermSize和-XX:MaxPermSize

 

-XX:PermSize分配非堆最小内存,默认为物理内存的1/64;

 

-XX:MaxPermSize分配最大内存,默认为物理内存的1/4。

 

线程堆和新生代堆分配

 

-Xmn:2g :设置新生代大小为2G。整个堆大小=新生代大小 + 年老代大小 + 持久代大小 。持久代一般固定大小为64m,所以增大新生代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。

 

-Xss:128k :设置每个线程的堆栈大小。一般情况下256K是足够了,默认JDK1.4中是256K,JDK1.5+中是1M。影响了此进程中并发线程数大小。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。

 

 

 

在很多情况下,-Xms和-Xmx设置成一样的。这么设置,是因为当Heap不够用时,会发生内存抖动,影响程序运行稳定性。

 

以上三个参数的设置都是默认以Byte为单位的,也可以在数字后面添加[k/K]或者[m/M]来表示KB或者MB。而且,超过机器本身的内存大小也是不可以的,否则就等着机器变慢而不是程序变慢了。

http://www.lryc.cn/news/191493.html

相关文章:

  • 11在SpringMVC中响应到浏览器的数据格式,@ResponseBody注解和@RestController复合注解的功能详解
  • go 流程控制之switch 语句介绍
  • sql 时间有偏差的解决方法
  • Apache Lucene 7.0 - 索引文件格式
  • GEE:使用中文做变量和函数名写GEE代码
  • 针对量化交易SDK的XTP的初步摸索
  • Unity编辑器从PC平台切换到Android平台下 Addressable 加载模型出现粉红色,类似于材质丢失的问题
  • CSS 边框
  • Docker逃逸---CVE-2020-15257浅析
  • Python学习 day03(注意事项)
  • vue中的生命周期有什么,怎么用
  • 论文阅读:ECAPA-TDNN
  • 【Unity】【VR】详解Oculus Integration输入
  • vue axios封装
  • oracle、mysql、postgresql数据库的几种表关联方法
  • 什么是UML UML入门到放弃系列
  • vue3 + element Plus实现表格根据关键字合并行,并实现行的增删改操作
  • c++视觉处理---直方图均衡化
  • 【LeetCode】2.两数相加
  • 蜘蛛飞机大战
  • 代码混淆界面介绍
  • 蓝桥杯每日一题2023.10.9
  • HTML5的新增表单元素
  • 如何在Firefox中配置HTTP?
  • Android组件通信——消息机制(二十六)
  • 《进化优化》第4章 遗传算法的数学模型
  • spring:详解spring MVC
  • 【Leetcode】207.课程表
  • Ubuntu18.04中QT安装下载安装pcl和vtk以及使用过程中踩过的坑
  • C++学习——对象数组、成员对象与封闭类