Java stack vs. real stack
Pavel Roskin
pavel_roskin at geocities.com
Mon May 17 06:44:43 PDT 1999
Hello!
I have investigated why StackOverflowError is thrown in AWT programs when
Kaffe uses the interpreting engine.
Hare are my results.
1) -ss switch doesn't affect stack size of the main thread in Kaffe. It is
always 1M (RedHat-6.0, i686, Linux-2.2.9). However, in JDK 1.1.7v2 -ss
affects all threads.
2) In the simplest case when functions are called without arguments (see
test/regression/Overflow.java) JDK consumes 44 bytes per java call,
Kaffe/JIT consumes 88 bytes, and Kaffe/Interpreter wastes 516 bytes!!!
3) Alone "vmException mjbuf;" at kaffe/kaffevm/intrp/machine.c:77 consumes
172 bytes per java call.
AWT programs in Kaffe/Interpreter with 32k (default!) stack throw
StackOverflowError when Java stack contains approximately 80 calls.
Unfortunately, AWT runs in a separate thread, so this happens almost for
all programs.
Ideas? Suggestions?
Pavel Roskin
More information about the kaffe
mailing list