-Xss1m / -XX:ThreadStackSize=512k

[Q&A] -Xss1m / -XX:ThreadStackSize=512k 啥作用?

指定线程最大栈空间。

jdk1.4里默认的栈大小是256KB
jdk1.5里默认的栈大小为1M


样例1:

配置JVM启动参数:-Xmx20m -Xms20m -Xss1m -XX:+PrintCommandLineFlags
-XX:ConcGCThreads=3 -XX:G1ConcRefinementThreads=13 -XX:GCDrainStackTargetSize=64 -XX:InitialHeapSize=20971520 -XX:MarkStackSize=4194304 -XX:MaxHeapSize=20971520 -XX:MinHeapSize=20971520 -XX:+PrintCommandLineFlags -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:ThreadStackSize=1024 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseG1GC -XX:-UseLargePagesIndividualAllocation

样例2:

配置JVM启动参数: -Xmx20m -Xms20m -XX:ThreadStackSize=512K -XX:+PrintCommandLineFlags
-XX:ConcGCThreads=3 -XX:G1ConcRefinementThreads=13 -XX:GCDrainStackTargetSize=64 -XX:InitialHeapSize=20971520 -XX:MarkStackSize=4194304 -XX:MaxHeapSize=20971520 -XX:MinHeapSize=20971520 -XX:+PrintCommandLineFlags -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:ThreadStackSize=524288 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseG1GC -XX:-UseLargePagesIndividualAllocation


[Q&A] 这个参数对线程的影响?

1、这个参数值越小创建线程数越多。参考: 估算jvm进程的最大线程数
2、这个参数值越大函数可调用的最大深度越大。参照如下代码

public class Jvm4_Xss {
	private static int count;

	private static void recursion() {
		count++;
		recursion();
	}

	public static void main(String[] args) {
		try {
			recursion();
		} catch (Throwable e) {
			System.out.println("调用最大深度:" + count);
			e.printStackTrace();
		}
	}
}
------------------------------------------------------------------
//JVM 启动参数
-Xmx20m -Xms20m -Xss1m

//运行结果:
调用最大深度:43909
java.lang.StackOverflowError
	at jvm.Jvm4_Xss.recursion(Jvm4_Xss.java:8)
------------------------------------------------------------------
//JVM 启动参数
-Xmx20m -Xms20m -Xss2m

//运行结果:
调用最大深度:103720
java.lang.StackOverflowError
	at jvm.Jvm4_Xss.recursion(Jvm4_Xss.java:8)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值