JVM specification은 JVM 스택이 고정 크기이거나 동적으로 확장 될 수 있음을 나타냅니다.동적으로 확장 가능한 JVM 스택
-Xss JVM 옵션을 사용하면 고정 크기를 설정할 수 있습니다.이 옵션을 설정하지 않으면 기본값 (약 512-2048k)이 설정되지만 필요한 경우 JVM에 동적으로 스택을 할당하도록 지시 할 수 있습니까?
역동적 인 크기 옵션을 설정할 수 없다면 JVM의 각 스레드에 실제로 20MB의 메모리를 할당하거나 20MB로 제한되는 메모리를 동적으로 할당합니까?
주어진 스레드가 1024k가 넘는 스택을 사용하지 않는 경우 -Xss1024k 또는 -Xss1024m을 설정하면 정확히 동일한 성능을 얻을 수 있습니다. 짧은 제한은 버그가있는 재귀 코드의 보안 일뿐입니다? – A21z
[HotSpot FAQ] (http://www.oracle.com/technetwork/java/hotspotfaq-138619.html) ("내 응용 프로그램에 많은 스레드가 있고 메모리가 부족합니다. Why? ") OutOfMemory를 바라 볼 때 더 많은 스레드를 실행할 수 있으려면 -Xss 값을 줄이는 것이 좋습니다. – A21z
@ A21z'-Xss1m' 또는'-Xss1g'를 사용하면 64 비트 JVM에서 많은 효과를 볼 수 있습니다. 32 비트 JVM에서는 운영 체제에 따라 제한된 가상 주소 공간 (1.5 ~ 3.5GB)이 있습니다 (메모리 용량에 관계없이) –