java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:MaxGCPauseMillis=100 -XX:+UseAdaptiveSizePolicy -XX:+UseAdaptiveSizePolicy:设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低相应时间或者收集频率等,此值建议使用并行收集器时,一直打开。 响...
有同学要问了,如果我没有设置这些参数,默认值是多少呢? 一般来说,就JDK8而言: -Xmx 的默认值为你当前机器最大内存的 1/4 -Xms 的默认值为你当前机器最大内存的 1/64 (这个值要反复测试并通过监控调整一个合适的值,是因为当Heap不够用时,会发生内存抖动,影响程序运行稳定性) -Xss 的默认值好像和平台有...
设置最大栈内存为-Xss160K,运行结果如下所示: 【解释】StackOverflowTest.java执行同样栈大小,count=850 设置最大栈内存为-Xss256K,运行结果如下所示: 【解释】StackOverflowTest.java执行同样栈大小,count=2131 使用jclasslib查看局部变量表中的内容 在idea中添加jclasslib视图 添加后,使用Show Bytecode With Jclass...
在x64的JVM中,Xss默认为1024K,所以如果你的应用开启了1000个线程,那么这个Thread区占用将是1024M,所以一般我们会把Xss设置为256K即满足要求; 3)Code:JIT 即时编译后(C1C2 编译器优化)的代码占用内存,受-XX:ReservedCodeCacheSize限制; 4)GC:垃圾回收占用内存,例如垃圾回收需要的 CardTable,标记数,区域划分记录,...
-Xss512k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1MB,以前每个线程堆栈大小为256K。应根据应用线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。 -XX:NewRatio=4:设置年轻代(包括Eden和...
1、堆设置: 参数-Xms和-Xmx,通常设置为相同的值,避免运行时要不断扩展JVM内存,建议扩大至3-4倍FullGC后的老年代空间占用。 2、年轻代设置: 新生代分为S0,S1和Eden区 参数-Xmn,1-1.5倍FullGC之后的老年代空间占用。 避免新生代设置过小,当新生代设置过小时,会带来两个问题:一是minor GC次数频繁,二是可能...
-Xss 这个参数用于设置每个线程的栈内存,默认1M,一般来说是不需要改的。除非代码不多,可以设置的小点,另外一个相似的参数是-XX:ThreadStackSize,这两个参数在1.6以前,都是谁设置在后面,谁就生效;1.6版本以后,-Xss设置在后面,则以-Xss为准,-XXThreadStackSize设置在后面,则主线程以-Xss为准,其它线程以-XX:ThreadS...
-Xss:设置每个线程的栈大小。 -XX:MaxPermSize:设置线程栈大小的上限。 -XX:ThreadStackSize:设置线程栈大小,该参数优先级高于-Xss。 -XX:+UseThreadPriorities:使用线程优先级。 4. JIT编译器 JIT编译器是JVM的重要组成部分,它将Java字节码转换为本地机器指令。以下是一些常见的JIT编译器参数: -XX:+PrintCompilat...
最后,是设置-Xss栈内存大小,设置单个线程栈大小,默认值和JDK版本、系统有关,一般默认512~1024kb。一个后台服务如果常驻线程有几百个,那麽栈内存这边也会佔用了几百M的大小。 JVM参数描述默认推荐 -XmsJava堆内存的大小OS内存64/1OS内存一半 -XmxJava堆内存的最大大小OS内存4/1OS内存一半 ...