Ok, I've done some more tests. This time I was stress testing the server
built with DFLAGS="-version=VibeIdleCollect" . There was one invocation
of GC.collect() before the benchmark started(the same one as in my
previous post). During the stress test GC.collect() wasn't called from
that handler which is expected as the server wasn't idling. The memory
usage grew to 380Mb. However when the benchmark finished there was GC
collection invoked, but the memory usage stayed at the same level. This
suggests there is a leak somewhere. The server was pretty simple:
http://pastie.org/4670356

Does the GC automatically release unused memory to the system by now? I
remember the times when this wasn't implemented at all.

In earlier tests memory usage stayed very low for me (in the 20-30 MB
range), but now I can confirm that one of my server processes just was
at over 1 GB. I'll investigate this, maybe there is actually a leak in
the manual memory management parts.