[kaffe] how i'm hoping to use kaffe
nall at themountaingoats.net
Fri Mar 12 08:34:02 PST 2004
i'm hoping the nice folks on this mailing list can help me. i am working
on a project that needs a discrete event simulator. conceptually, we
will have lots of very lightweight threads, each of which will run until
it determines it should give up control to another thread. due to the
number and "lightness" of these threads, a JVM implementing solely
native threads (e.g. Sun or IBM's offerings) just doesn't cut it
performance-wise (this app will be running primarily on linux). luckily
kaffe supports green threads.
i'm not sure why sun doesn't support green threads pst JDK-1.3, but they
don't. i've tried a number of solutions with sun's JDK-1.4.2, including
instrumenting the bytecode to implement continuations. then i found
kaffe with its optional green thread implementation. i have a
microbenchmark that spawns 25 or so threads, and each one runs for 50k
iterations, updating some shared data structure. on this benchmark,
kaffe's performance was remarkable. my hopes were high.
however, once i tried to run my full event simulator using kaffe, the
performance went down the tubes. i have not been able to ascertain why
exactly. the current implementation has all of the synchronization
blocks one would need for a non-green thread implementation to avoid
races. it also heavily uses a hashmap.
i'm writing in hopes that someone might have some insight as to what's
going on, what to look for, or just how to find where the bottlenecks
are. i don't mind reading code/docs. i just need a nudge or some
insight, like i said.
also, are there any gui's for viewing kaffe's gprof output?
thanks for any help,
More information about the kaffe