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

java JVM : Xms Xmx PermSize MaxPermSize 区别

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

java JVM : Xms Xmx PermSize MaxPermSize 区别

 
 java JVM虚拟机选项: Xms Xmx PermSize MaxPermSize 区别  
Xms 是指设定程序启动时占用内存大小。一般来讲,大点,程序会启动的 快一点,但是也可能会导致机器暂时间变慢。
Xmx 是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占 用更多的内存,超出了这个设置值,就会抛出OutOfMemory 异常。
Xss 是指设定每个线程的堆栈大小。这个就要依据你的程序,看一个线程 大约需要占用多少内存,可能会有多少线程同时运行等。
 
 以上三个参数的设置都是默认以Byte 为单位的,也可以在数字后面添加 [k/K]或者[m/M]来表示KB 或者MB。而且,超过机器本身的内存大小也是不可 以的,
 否则就等着机器变慢而不是程序变慢了。 
 因此,对于一般的java 应用程序来讲,我们只要把前两个参数设置合适基 本上就可以了。第三个参数还是需要有很强的 各应用程序的设置方法 
 
-Xmx1600m -XX:PermSize=64m -XX:MaxPermSize=256m 
-Xms40m -Xmx512m
 
java JVM捏造机选项: Xms Xmx PermSize MaxPermSize 差别
 
java固然是主动采用内存,但是利用步伐,尤其办事器步伐最好根据业务环境指明内存分派限定。不然大概导致利用步伐宕失。
 
举例阐明含义:
 
-Xms128m
 
表现JVM Heap(堆内存)最小尺寸128MB,初始分派
 
-Xmx512m
 
表现JVM Heap(堆内存)最大容许的尺寸256MB,按需分派。
 
阐明:倘若-Xmx不指定大概指定偏小,利用大概会导致java.lang.OutOfMemory毛病,此毛病来自JVM不是Throwable的,无法用try...catch捕获。
 
PermSize和MaxPermSize指明捏造机为java永世天生东西(Permanate generation)如,class东西、要领东西这些可反射(reflective)东西分派内存限定,这些内存不包含在Heap(堆内存)区之中。
 
-XX:PermSize=64MB 最小尺寸,初始分派
 
-XX:MaxPermSize=256MB 最大容许分派尺寸,按需分派
 
过小会导致:java.lang.OutOfMemoryError: PermGen space
 
MaxPermSize缺省值和-server -client选项相干。
 
-server选项下默认MaxPermSize为64m
 
-client选项下默认MaxPermSize为32m
 
经历:
 
1、慎用最小限定选项Xms,PermSize已节俭系统资源。
 
修正捏造内存"%jboss_home%\bin\run.conf"
 
JAVA_OPTS="-Xms256m -Xmx1024m -XX:MaxPermSize=512m
 
java.lang.OutOfMemoryError 涌现时,有多种环境,比如:PermGen space ,Java heap space 。
 
遇到的是java.lang.OutOfMemoryError: PermGen space ,是内存的永世保 存地区溢出了,永世生存地区是存放class信息和meta信息的,分派了后,jvm是不会往采用的。必须让jvm分派更多的permsize,才干办理这个标题。

转载于:https://my.oschina.net/u/2607324/blog/757106

相关文章:

  • [svc]后台运行程序screen or nohup
  • 配置 L3 agent - 每天5分钟玩转 OpenStack(99)
  • LayDate使用
  • Java|序列化异常StreamCorruptedException的解决方法
  • 再用python写一个文本处理的东东
  • C#泛型-模板特化
  • Spring与Mybatis环境搭建 【转】
  • [故障解决]Ssh连接port 22: Connection refused
  • PHP设置脚本最大执行时间的三种方法
  • jquery.sobox 经典版弹窗控件
  • JavaScript 深克隆
  • MAC将根目录文件夹的权限赋给用户
  • CSS中link和@import的区别是:
  • CentOS工作机 - google chrome
  • crontab执行失败的多种原因
  • 2017届校招提前批面试回顾
  • Android组件 - 收藏集 - 掘金
  • Brief introduction of how to 'Call, Apply and Bind'
  • django开发-定时任务的使用
  • Fastjson的基本使用方法大全
  • javascript 总结(常用工具类的封装)
  • Java-详解HashMap
  • laravel 用artisan创建自己的模板
  • Linux下的乱码问题
  • node.js
  • Python_网络编程
  • Spring Boot MyBatis配置多种数据库
  • 简单基于spring的redis配置(单机和集群模式)
  • 入门到放弃node系列之Hello Word篇
  • 使用common-codec进行md5加密
  • 一天一个设计模式之JS实现——适配器模式
  • 在electron中实现跨域请求,无需更改服务器端设置
  • ​iOS安全加固方法及实现
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​虚拟化系列介绍(十)
  • # 达梦数据库知识点
  • # 数据结构
  • #define
  • #微信小程序:微信小程序常见的配置传旨
  • (26)4.7 字符函数和字符串函数
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (十六)一篇文章学会Java的常用API
  • (一一四)第九章编程练习
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET Core 项目指定SDK版本
  • .NET Core中的去虚
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET 常见的偏门问题
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .net2005怎么读string形的xml,不是xml文件。
  • ??myeclipse+tomcat
  • @TableId注解详细介绍 mybaits 实体类主键注解