Reputation: 2926
I'm trying to verify if Java stack size is fixed (set at the beginning) or limited (grows to a certain limit). I'm trying to measure this with a simple program that creates a certain amount of threads (with set Xss) but so far I only discovered that RSS is per process and for obvious reasons knowing heap size is meaningless here.
Upvotes: 4
Views: 885
Reputation: 489
J9 (and now Eclipse #OpenJ9) allow the Java stack to grow. While the native thread's stack is fixed, Java execution occurs on a separate stack which is managed by the JVM.
The Java stack starts small and can grow to a user-configurable limit.
Upvotes: 1
Reputation: 274
In Oracle and OpenJDK stack sizes are fixed and do not shrink or grow. Depending on the platform, default sizes vary.
IBM J9 handles this differently: Stack sizes are limited via a lower and upper boundary for Java Threads. OS threads can have a different stack size.
In case you want to estimate the total size of memory used, you'll have to know the number of threads being used, as the stack sizes are per thread on both Oracle/OpenJDK and on J9.
Upvotes: 2