当前位置:首页 > 内存 > 正文

jvm默认堆内存大小(jvm默认多大内存)

  • 内存
  • 2024-05-16 18:31:21
  • 355

一、怎样修改JVM的默认内存大小值虽然Java会自动回收内存,但应用程序尤其是服务器程序最好根据业务情况指定内存分配限制。否则,应用程序可能会崩溃。
-Xms128m:表示JVMHeap(堆内存)最小大小128MB,初始分配
-Xmx512m:表示JVMHeap(堆内存)最大允许大小256MB,按需分配。
注意:如果-Xmx未指定或太小,应用程序可能会导致emory错误。这个错误来自于JVM不是Throwable,无法用try...catch捕获。
-XX:PermSize=64MB最小大小,初始分配
-XX:MaxPermSize=256MB最大允许分配大小,按需分配,太小会导致:emoryError:PermGenspace
说明:PermSize和MaxPermSize表示虚拟机的Java永久代对象(PermanateGeneration)的大小,例如类对象、方法对象和其他反射对象。这些内存分配限制不包含在Heap(堆内存)中。)区域。
MaxPermSize的默认值与-server-client选项有关。
-server选项下默认MaxPermSize为64m
-client选项下默认MaxPermSize为32m
设置位置为:
Window
->MyEclipseEnterpriseWorkBench
->服务器
->JBoss
->JBoss5.x
->在JDK下的OptionalJavaVMarguments下。
例如:-Xms1024m-Xmx1024m-XX:MaxPermSize=256m
二、常用JVM参数-Xmn12800m:设置新生代空间初始值、最小值、最大值为12800m
-Xms16g:设置jvm初始分配堆内存大小
-Xmx16g:设置jvm最大分配堆内存大小
-XX:MetaspaceSize=256m:设置jvm元空间初始值大小
-XX:MaxMetaspaceSize=256m:设置jvm元空间最大值
-XX:SurvivorRatio=3:设置伊甸园空间的大小与单个幸存者空间的比率。Survivor空间大小=-Xmn/(-XX:SurvivorRatio+2)
-XX:TargetSurvivorRatio=60:minorc后,survivor区域占用的最大值(百分比)。
-XX:MaxTenuringThreshold=15:设置新生代对象存活minorgc次后进入老年代。
-XX:-UseAdaptiveSizePolicy:将survivor空间设置为固定大小,不会动态调整。
-XX:+UseConcMarkSweepGC:开启cms收集器,会自动开启-XX:+UseParNewGC。新生代使用多线程垃圾收集器,老年代使用cms收集器。
-XX:+UseCMSInitiatingOccupancyOnly:设置只有当老年代占用率达到-XX:CMSInitiatingOccupancyFraction设置的值时才会触发cms的并发垃圾回收周期。
-XX:CMSInitiatingOccupancyFraction=65:当老年代达到65%时,触发cms的第一个垃圾回收周期。
-Xloggc:metabase_:将垃圾收集统计信息打印到metabase_文件中。组合-XX:+PrintGCDetails和-XX:+PrintGCDateStamps将输出捕获到日志文件中。
-XX:+PrintGCDetails:启用新生代、老年代和永久代垃圾收集统计信息的详细报告。
-XX:+PrintGCDateStamps:在每次垃圾回收时打印时间戳。
-XX:+PrintTenuringDistribution:报告与对象晋升相关的统计信息,包括survivor区的占用情况以避免过早地将对象从survivor晋升到老年代、hotspotvm计算的晋升阈值、当前最大晋升阈值并显示当前幸存者中对象年龄的直方图。
-XX:+HeapDumpOnOutOfMemoryError:oom发生时,生成jam堆的dump文件。
-XX:HeapDumpPath=:设置生成堆转储文件的目录路径。
-XX:+DisableExplicitGC:禁用显式调用()引起的fullgc。
-XX:+UseBiasedLocking:开启偏向锁定功能。