How to verify if Java thread stack size is fixed or limited?

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

Answers (2)

Dan Heidinga
Dan Heidinga

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

Florian Fray
Florian Fray

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

Related Questions