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

(转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m

在linux环境下配置项目运行环境时,部署的人员都会分配一下内存,以保证程序正常的运行。其实在开发的时候(window系统),就已经涉及到内存分配了,只是这些参数有默认值,因此一直没有去重视它。
以Myeclipse为例,在Preferences->Java->Installed JREs下面,就有设置jvm内存分配。

这里我们就可以配置内存,一般我们见到的都是

-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m

linux中一般为:

-vmargs -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m

但是这一串究竟是什么意思,这里就给大家讲解一下。
按照官方的说法:Java 虚拟机具有一个堆(Heap),堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的,在JVM中堆之外的内存称为非堆内存(Non-heap memory)。

简单的说就是:堆是java代码可及的内存,开发人员写的东西都是堆分配的内存(底层实现除外)。而非堆内存则是JVM自己用的,比如JVM内部处理或优化,垃圾处理,常数池等。

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

-Xms分配堆最小内存,默认为物理内存的1/64;-Xmx分配最大内存,默认为物理内存的1/4。
非堆内存分配用-XX:PermSize和-XX:MaxPermSize

-XX:PermSize分配非堆最小内存,默认为物理内存的1/64;-XX:MaxPermSize分配最大内存,默认为物理内存的1/4。
因此,合理的内存分配是程序正常稳定的运行的基础。不然内存溢出可就麻烦了。

相关文章:

  • Python标准库05 存储对象 (pickle包,cPickle包)(转载)
  • 软件工程-冲刺周
  • freemarker中常用的shiro标签
  • 企业该分多少钱给员工?看柏明顿阿米巴奖金分配方案
  • Ubuntu下部署java JDK和eclipse IDE
  • Docker镜像的目录存储讲解
  • SpringBoot中Mybaties PageHelper插件使用
  • Pop - Facebook 开源 iOS OS X 动画库
  • 一个程序员的自白(延迟满足)
  • Apache ab 压力测试
  • 依赖注入框架 InversifyJS
  • 10.30T2 二分+前缀和(后缀和)
  • 数据流的压缩、编码及传递困扰
  • Linux基础命令---mkisofs
  • Linux iptables开放特定端口
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 2017届校招提前批面试回顾
  • Angular2开发踩坑系列-生产环境编译
  •  D - 粉碎叛乱F - 其他起义
  • idea + plantuml 画流程图
  • k个最大的数及变种小结
  • Mysql优化
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Redis 中的布隆过滤器
  • SpringBoot几种定时任务的实现方式
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 初识MongoDB分片
  • 关于使用markdown的方法(引自CSDN教程)
  • 简单基于spring的redis配置(单机和集群模式)
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 在weex里面使用chart图表
  • 正则表达式
  • 【云吞铺子】性能抖动剖析(二)
  • ​【已解决】npm install​卡主不动的情况
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #{}和${}的区别是什么 -- java面试
  • #Z2294. 打印树的直径
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (2)MFC+openGL单文档框架glFrame
  • (MATLAB)第五章-矩阵运算
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (三)模仿学习-Action数据的模仿
  • (十三)Flask之特殊装饰器详解
  • (学习日记)2024.01.09
  • (一)python发送HTTP 请求的两种方式(get和post )
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .Net MVC + EF搭建学生管理系统
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .net 简单实现MD5
  • .NET 依赖注入和配置系统
  • .NET中统一的存储过程调用方法(收藏)
  • :如何用SQL脚本保存存储过程返回的结果集
  • [Angular] 笔记 21:@ViewChild
  • [BZOJ1877][SDOI2009]晨跑[最大流+费用流]