What are the current best GC parameters for a soft-realtime game?

The title of the question says it all, really. What are the best combinations of voodoo for the sorts of games I write? I want the most consistently smooth pause-free collections possible.

I was using the G1 GC but it would appear that the G1 GC is slightly broken on Java 6 (works fine on Java 7) and causes lots of hotspot crashes.

Assume single or dual core processors may be available.

Cas :slight_smile:

Probably won’t help princec much :slight_smile: but just to get the ball rolling there’s a really nice list of parameters here

If your targeting Java 6 then since Escape Analysis isn’t enabled by default so using the parameters to enable that will be useful.

I guess the lack of response says it all. We don’t know.

However i must admit that at this stage i am not having a problem with any pauses in my games at all. That is with default GC on 1.6.0u18. However i am on 2+cores.

Are you experiencing pauses? and if so, is it across platforms and how bad are they?

No, no pauses really. I just wondered what’s optimal these days :slight_smile:

I’ve reverted back to using a naughty Java 7 JRE in my games and using the G1 collector. The G1 collector in the Java 6 VM I was using crashes the VM pretty much reliably. Java 7 is lots faster than Java 6 too, which means Revenge runs on slightly slower hardware at full clip.

The webstarted versions of the games just use -Xincgc and no-one’s noticed any pauses. Or at least not moaned.

Then again I’m still resorting to pooling in a few places which I don’t really like (such as particles and sprites). I could do with throwing off the last shackles of pooling for simplicity’s sake. Though if I’m looking at porting to ObjC or even C++ I’d probably regret that :-\

Cas :slight_smile: