当前位置:主页 > java教程 > java启动设置JAR包内存大小

java启动如何设置JAR包内存大小

发布:2023-04-04 18:40:01 59


为网友们分享了相关的编程文章,网友富朋兴根据主题投稿了本篇教程内容,涉及到java、JAR包、设置JAR包内存大小、java设置JAR包、java启动设置JAR包内存大小相关内容,已被175网友关注,相关难点技巧可以阅读下方的电子资料。

java启动设置JAR包内存大小

java启动设置JAR包内存大小

亲测可用!

java -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M -jar a.jar

-Xms256m -Xmx512m: 对象使用的内存,也称堆内存

PermSize 类使用的内存,也称永久内存

由于Spring-boot内置tomcat,默认内存占用可能很大,最好设置下jar启动占用的内存。

给自己的jar包运行时分配内存大小

java -jar -Xms8m -Xmx8m -XX:PermSize=8M -XX:MaxPermSize=16M  bankmock-0.0.1-SNAPSHOT.jar

 说明:

  • Xms:堆内存初始大小
  • Xmx:堆内存最大值
  • PermSize:永久内存初始大小
  • MaxPermSize:永久内存最大值

上边是启动jar包时设置的jvm参数;

自己打一个包,springboot搭建的,打包后40多兆。

当我们在windows上cmd进入启动的时候,当我设置的启动参数为:

java -jar -Xms8m -Xmx8m -XX:PermSize=8M -XX:MaxPermSize=16M  bankmock-0.0.1-SNAPSHOT.jar

会发现内存溢出了,说明我们分配的内存不够,最后我 进行多次实验后,找到了最小值:

java -jar -Xms8m -Xmx16m -XX:PermSize=8M -XX:MaxPermSize=16M  bankmock-0.0.1-SNAPSHOT.jar 

我们发现服务正常启动了。

JVM的一些参数设置

#常用的设置
-Xms:初始堆大小,JVM 启动的时候,给定堆空间大小。 
 
-Xmx:最大堆大小,JVM 运行过程中,如果初始堆空间不足的时候,最大可以扩展到多少。 
 
-Xmn:设置堆中年轻代大小。整个堆大小=年轻代大小+年老代大小+持久代大小。 
 
-XX:NewSize=n 设置年轻代初始化大小大小 
 
-XX:MaxNewSize=n 设置年轻代最大值
 
-XX:NewRatio=n 设置年轻代和年老代的比值。如: -XX:NewRatio=3,表示年轻代与年老代比值为 1:3,年轻代占整个年轻代+年老代和的 1/4 
 
-XX:SurvivorRatio=n 年轻代中 Eden 区与两个 Survivor 区的比值。注意 Survivor 区有两个。8表示两个Survivor :eden=2:8 ,即一个Survivor占年轻代的1/10,默认就为8
 
-Xss:设置每个线程的堆栈大小。JDK5后每个线程 Java 栈大小为 1M,以前每个线程堆栈大小为 256K。
 
-XX:ThreadStackSize=n 线程堆栈大小
 
-XX:PermSize=n 设置持久代初始值	
 
-XX:MaxPermSize=n 设置持久代大小
 
-XX:MaxTenuringThreshold=n 设置年轻带垃圾对象最大年龄。如果设置为 0 的话,则年轻代对象不经过 Survivor 区,直接进入年老代。
 
#下面是一些不常用的
 
-XX:LargePageSizeInBytes=n 设置堆内存的内存页大小
 
-XX:+UseFastAccessorMethods 优化原始类型的getter方法性能
 
-XX:+DisableExplicitGC 禁止在运行期显式地调用System.gc(),默认启用	
 
-XX:+AggressiveOpts 是否启用JVM开发团队最新的调优成果。例如编译优化,偏向锁,并行年老代收集等,jdk6纸之后默认启动
 
-XX:+UseBiasedLocking 是否启用偏向锁,JDK6默认启用	
 
-Xnoclassgc 是否禁用垃圾回收
 
-XX:+UseThreadPriorities 使用本地线程的优先级,默认启用	
 
等等等......

小结一下:

我们在自己开发项目的时候,需要部署到服务器上,那么运维人员会问你,你的项目需要多大内存才能启动起来呀,有的人就说管他的,越大越好,随便开口就说1024M,2048M等等,其实我们自己在本地测试一下就知道了呀

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持码农之家。


参考资料

相关文章

  • Java经典面试题最全汇总208道(一)

    发布:2023-04-25

    这篇文章主要介绍了Java经典面试题最全汇总208道(一),本文章内容详细,该模块分为了六个部分,本次为第一部分,需要的朋友可以参考下


  • 什么是Java分布式锁及其实现方式

    发布:2020-02-14

    今天小编就为大家分享一篇关于Java分布式锁的概念与实现方式详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧


  • Java透明窗体的设置实例方法

    发布:2019-06-22

    在本文中我们给大家整理了关于Java透明窗体的设置方法以及需要注意的地方,需要的朋友们学习参考下。


  • java面试LruCache 和 LinkedHashMap及算法实现

    发布:2023-04-01

    这篇文章主要为大家介绍了java面试LruCache 和 LinkedHashMap及算法实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Java中注解@JsonFormat的用法详解

    发布:2023-03-02

    这篇文章主要给大家介绍了关于Java中注解@JsonFormat用法的相关资料,以及分享了@JsonFormat 将枚举序列化为对象的方法,文中给出了详细的代码实例,需要的朋友可以参考下


  • java数据类型转换陷阱包括列表陷阱

    发布:2022-10-20

    给网友朋友们带来一篇关于java的教程,这篇文章主要介绍了java数据类型转换的一些陷阱,包括基本数据类型转换列表陷阱,基本上这一篇就把常见的问题就给大家分享一下


  • java大话之创建型设计模式教程示例

    发布:2023-04-12

    这篇文章主要为大家介绍了java大话之创建型设计模式教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Java Flink与kafka实现实时告警功能过程

    发布:2023-04-25

    这篇文章主要介绍了Java Flink与kafka实现实时告警功能,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


网友讨论