I have seen JVM option -Xss - What does it do exactly? this link, but my question is how is this option useful.
Because, if we set a very minimum limit to the -Xss va
-Xss
allows to configure Java thread stack size according to application needs:
Bear in mind that HotSpot JVM also utilizes the same Java thread stack for the native methods and JVM runtime calls (e.g. class loading). This means Java thread stack is used not only for Java methods, but JVM should reserve some stack pages for its own operation as well.
The minimum required stack size is calculated by the formula:
(StackYellowPages + StackRedPages + StackShadowPages + 2*BytesPerWord + 1) * 4096
where
StackYellowPages
and StackRedPages
are required to detect and handle StackOverflowError;StackShadowPages
are reserved for native methods;E.g. for 32-bit Windows JVM minimum stack size = (3 + 1 + 4 + 2*4 + 1) * 4K = 68K
BTW, you may reduce the minumum required stack size using these JVM options: (not recommended!)
-XX:StackYellowPages=1 -XX:StackRedPages=1 -XX:StackShadowPages=1