当前位置: 首页 > 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。而且,超过机器本身的内存大小也是不可以的,否则就等着机器变慢而不是程序变慢了。

相关文章:

  • uniapp编译到小程序Component is not found in path “components/energy/illumination“
  • element树形控件编辑节点组装节点
  • 上海-华为全联接大会|竹云受邀参加华为云ROMAConnect行业生态联盟成立联合发布会
  • django: You may need to add ‘localhost‘ to ALLOWED_HOSTS
  • k8s使用
  • pycharm远程调试运行程序出现No such file or directory:解决办法
  • c语言练习86:移除元素
  • Java版分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis 电子招标采购系统功能清单
  • VueRouter与expres/koa中间件的关联
  • [Mono Depth/3DOD]单目3D检测基础
  • 【科学文献计量】利用pybibx分析Scopus文献数据集(EDA,N-Grams,Cluster,Network analysis,NLP)
  • MySQL系列---Online DDL
  • 【C++】list基本接口+手撕 list(详解迭代器)
  • 2023年中国水电行业研究报告
  • scrapy针对302请求的处理与重试配置
  • 殡葬用品商城小程序的作用是什么
  • tortoise创建本地仓库
  • 【JavaEE初阶】 volatile关键字 与 wait()方法和notify()方法详解
  • Android Studio 配置Git SVN忽略文件
  • android之TextView自由选择复制
  • 秦洪看盘|交易型资金收缩,释放短线压力
  • 云南一餐馆收购长江野生鱼加工为菜品,被查处罚款
  • 山寨“小米”智能马桶、花洒销售额过亿,被判赔3500万元
  • 吴清稳市场稳预期发布会十要点:谈平准基金、股市稳定、公募改革和巴菲特
  • 关税风暴下,3G资本拟94亿美元私有化美国鞋履巨头斯凯奇,溢价30%
  • 上海市政府常务会议部署提升入境旅游公共服务水平,让国际友人“无障碍”畅游上海