JAVA开发(运行JAR包怎么指定虚拟机内存大小)
我们都使用过 java -jar xxx.jar包去运行jar包。但是有时候要指定jar包运行时内存,该怎么做,而且设置多大怎么衡量,很多人从来没有了解过。
背景:
我们开发java程序,可能涉及到开发环境,测试环境,生产环境。然后每个环境的服务器配置可能是不一样的。比如说开发环境可能是8G的内存 测试环境是 16G的内存,生产环境是 32G的内存。那么我们运行jar的指定内存应该是不一样的,否则就造成了硬件资源的浪费。
例如:java -jar -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256M XXX.jar
java -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M MyClass
各参数含义:
-Xms128m JVM初始分配的堆内存
-Xmx512m JVM最大允许分配的堆内存,按需分配
-XX:PermSize=64M JVM初始分配的非堆内存
-XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配
先了解一下虚拟机内存模型:

堆内存分配
JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的堆内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;
空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的大小。
说明:如果-Xmx 不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM,不是Throwable的,无法用try...catch捕捉。
非堆内存分配
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。(还有一说:MaxPermSize缺省值和-server -client选项相关,
-server选项下默认MaxPermSize为64m,-client选项下默认MaxPermSize为32m。这个我没有实验。)
上面错误信息中的PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。还没有弄明白PermGen space是属于非堆内存,还是就是非堆内存,但至少是属于了。
XX:MaxPermSize设置过小会导致java.lang.OutOfMemoryError: PermGen space 就是内存益出。
相关文章:
JAVA开发(运行JAR包怎么指定虚拟机内存大小)
我们都使用过 java -jar xxx.jar包去运行jar包。但是有时候要指定jar包运行时内存,该怎么做,而且设置多大怎么衡量,很多人从来没有了解过。 背景: 我们开发java程序,可能涉及到开发环境,测试环境&#x…...
领导力的终极奥义
过去,我曾多次演讲、著书,把自己在长达半个世纪的经营实践中所体悟到的经营思想和方法告诉中国的企业家。 但是,对于任何一家企业来说,不管它倡导了多么高尚的经营哲学,不管它构建了多么精致的管理系统,这样…...
1-MATLAB APP Design-图像的输入与输出
一、APP 界面设计展示 新建一个空白的APP,在此次的学习中,我们会用到编辑字段(文本框)、 按钮、坐标区和面板,首先在界面中拖入一个编辑字段(文本框),在文本框中输入内容:图形的输入与输出,调整背景颜色,字体的颜色为黑色,字体的大小调为25....
【C++】内存管理
目录一、C/C内存分布二、C内存管理方式2.1、new/delete操作内置类型2.2、new和delete操作自定义类型三、operator new与operator delete函数3.1、operator new与operator delete函数四、new和delete的实现原理4.1、内置类型4.2、自定义类型五、定位new表达式(placement-new)六、…...
Dilworth定理
偏序关系 设RRR是集合AAA的一个二元关系,若RRR满足: 1.自反性:∀x∈A\forall x \in A∀x∈A,有xRxxRxxRx 2.反对称性:∀x,y∈A\forall x,y \in A∀x,y∈A,若xRy,yRxxRy,yRxxRy,yRx,则xyxyxy 3.传递性&…...
使用loading动画让你的条件渲染页面更高级
前言在我们做项目的使用常常会使用条件渲染去有选择的给用户展示相关页面,如果渲染的数据或场景比较多比较复杂,那么往往需要3、4s的时间去完成,用户点击了之后就会陷入3、4s的空白期,并且这段时间屏幕是处于一种”未响应“的状态…...
Renegade:基于MPC+Bulletproofs构建的anonymous DEX
1. 引言 白皮书见: Renegade Whitepaper: Protocol Specification, v0.6 开源代码见: https://github.com/renegade-fi/renegade(Renegade p2p网络每个节点的核心网络和密码逻辑)https://github.com/renegade-fi/mpc-bulletpr…...
二、Plugin The chain/event/query function
The chain function 链函数是所有数据处理都在其中进行的函数。在简单过滤器的情况下(本节示例的情况),_chain()函数大多是线性函数——因此对于每个传入的缓冲区,也将输出一个缓冲区。下面是一个非常简单的chain函数的实现: sta…...
了解 PostgreSQL 的扩展查询协议
1.介绍 本篇博客用于解释扩展协议的工作原理以及它与简单查询的区别。 2.简单查询 在PostgreSQL中,客户端连接能够发起两种类型的查询:简单查询和扩展协议查询。 简单查询顾名思义。 当启动 psql 客户端连接到pg服务器时,几乎所有发送的…...
接入网关和隔离网关
文章目录1. 什么是网关?2. 网关的作用是什么?3. 接入网关和隔离网关1. 什么是网关? 网关(Gateway)是一种网络设备,通常用于将不同网络之间的流量进行转发和路由,将一个网络连接到另一个网络&…...
实用指南:如何在Anolis OS上轻松使用 Kata 安全容器?
文/云原生SIG本篇文章我们将详细介绍怎么轻松在 Anolis OS 上使用 Kata Containers 安全容器,我们将介绍 Kata Container 社区于 2022 年 10 月 10 日最新发行的 Kata3.0.0 的安装部署方式,3.0.0 版本包含了基于袋鼠 RunD 开源的最新 Rust Kata runtime …...
如何锁定Word文档部分文字不被修改
我们知道,想要保护Word文档的内容无法随意更改,可以设置“限制编辑”的保护模式。 那如果实际工作中,只需要固定的一部分内容不能编辑,可以实现吗?答案是肯定的,今天就来说说如何设置Word文档部分文字可修…...
聊聊8万8的私董会,很扎心
聊聊8万8的私董会,很扎心 道几句真心话,很扎心,但也很现实。 如果你喜欢刷抖音,这种感觉应该会更加明显。 股市哀鸿遍野,实体一地鸡毛,我们办公室楼下的门面换了一波又一波。 别说那些不起眼的小生意&a…...
卷积网络与全连接网络的区别
问题卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习。卷积神经网络具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,因此也被称为“平移不变人工神经网络。全连接神经网络是具有多层感知器的的网络&a…...
【5000左右电脑配置清单】预算不高于5000,不带显示器的电脑配置清单推荐
由于本人是学生党经济有限,预算不高于5000元配一套电脑主机,说实话5000左右的电脑配置已经很好了,今天站长整理了几款配置给大家参考参考,更多电脑配置还请继续关注西安SEO优化站点! 配置1: <CPU> I5…...
在 4G 内存的机器上,申请 8G 内存会怎么样?
在 4GB 物理内存的机器上,申请 8G 内存会怎么样? 这个问题在没有前置条件下,就说出答案就是耍流氓。这个问题要考虑三个前置条件: 操作系统是 32 位的,还是 64 位的?申请完 8G 内存后会不会被使用&#x…...
JavaSE学习day9 集合(基础班结束)
1.ArrayList 集合和数组的优势对比: 长度可变 添加数据的时候不需要考虑索引,默认将数据添加到末尾 不能存基本数据类型。只能通过包装。 1.1ArrayList类概述 什么是集合 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变 Ar…...
Python爬虫进阶 - win和linux下selenium使用代理
目录 Windows selenium配置 下载地址 Chrome Chromedriver 版本对应关系 实践测试 操作元素 浏览器操作 获取元素信息 鼠标操作 实战demo selenium添加代理 Linux selenium配置 检查服务器环境 下载安装第三方库(最简单版) 实践测试 代码…...
力扣-从不订购的客户
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:183. 从不订购的客户二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果总结前言…...
速来!掘金数据时代2022年度隐私计算评选活动火热报名中!
开放隐私计算 开放隐私计算开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神,专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播,愿成为中国 “隐私计算最后一公里的服务区”。183篇原创内容公众号…...
OFA图像描述效果展示:COCO风格caption生成——简洁、准确、自然
OFA图像描述效果展示:COCO风格caption生成——简洁、准确、自然 1. 项目概述 今天要给大家展示一个特别实用的AI工具——基于OFA模型的图像描述生成系统。这个工具能够自动为任何图片生成简洁、准确、自然的英文描述,就像给图片配上了专业的文字说明。…...
OpenCore Legacy Patcher免费教程:3个关键步骤让老Mac焕发新生
OpenCore Legacy Patcher免费教程:3个关键步骤让老Mac焕发新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为苹果官方不支持你的老Mac升级…...
YOLO11 + SAHI + TensorRT:三剑合璧,实现高精度小目标视频实时检测的工程实践
1. 为什么需要YOLO11SAHITensorRT组合方案 在安防监控、无人机巡检等实际场景中,小目标检测一直是个令人头疼的问题。想象一下,当你站在高楼往下看,地面上的行人和车辆就像蚂蚁一样小。传统的目标检测算法在这种场景下往往表现不佳࿰…...
一键部署Chat2DB:Docker与cpolar打造跨地域数据库管理神器
1. 为什么你需要Chat2DB和Docker的黄金组合 最近两年有个特别明显的趋势:数据正在从专业领域走向全民化。我见过太多产品经理被SQL卡住脖子,市场团队等一份报表要排期三天,甚至财务同事为了跑个月度数据要专门请IT部门吃饭。直到去年第一次用…...
SMUDebugTool终极指南:AMD Ryzen系统硬件调试与性能优化的完整解决方案
SMUDebugTool终极指南:AMD Ryzen系统硬件调试与性能优化的完整解决方案 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目…...
电子教材无法下载?教育资源下载工具让智慧课堂资源触手可及
电子教材无法下载?教育资源下载工具让智慧课堂资源触手可及 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目…...
QGIS里怎么加载NASA的SRTM高程数据?从下载到3D可视化的保姆级教程
QGIS实战:从NASA SRTM高程数据下载到3D地形可视化全流程指南 当你第一次在QGIS中看到那些起伏的山脉、蜿蜒的河谷以三维形式呈现时,那种将地理数据转化为视觉故事的成就感是无与伦比的。NASA的SRTM(航天飞机雷达地形测绘任务)高程…...
别再只盯着CAN了!聊聊LIN总线在低成本IoT传感器网络里的那些‘骚操作’
LIN总线在低成本IoT传感器网络中的创新实践 当谈到工业物联网和传感器网络通信协议时,大多数人会立刻想到CAN、Modbus或以太网协议。但有一个被严重低估的选项正在悄然崛起——LIN总线。这个原本为汽车电子设计的轻量级协议,凭借其独特的成本优势和简洁架…...
黑丝空姐-造相Z-Turbo场景应用:为你的内容创作提供无限灵感
黑丝空姐-造相Z-Turbo场景应用:为你的内容创作提供无限灵感 1. 镜像概述与核心能力 黑丝空姐-造相Z-Turbo是一款基于Xinference部署的文生图模型服务,通过gradio提供直观的交互界面。该镜像专注于生成特定风格的视觉内容,为创意工作者提供高…...
企业微信自动化新解:PC端HOOK与iPad协议双轨实践
1. 企业微信自动化的业务痛点与双轨方案 最近两年服务企业客户时,最常被问到的就是:"每天要手动处理上千条客户消息,有没有更高效的解决方案?" 这让我意识到企业微信自动化已成为刚需。传统人工操作在批量消息发送、大规…...
