getRuntime().gc()

I’m doing some memory tuning and looking through garbage collection logs. It looks like some of my full collections might be kicked off manually with a forced system collection.

39115.243: [Full GC (System) [PSYoungGen: … real=4.70 secs]

I don’t know of any places in my code where I am forcing gc. I found two places in ColdBox: “coldboxCommands()” in ColdBox.cfc and “runGC()” in JVMUtils.cfc, but I don’t see any places right off where either of those are run automatically by the framework without user interaction.

Luis, do you know of any places in ColdBox that automatically force garbage collection (excluding things like the cache monitor that require me to click a button)? I know I can turn it off at the JVM with -XX:+DisableExplicitGC, but I’d like track it down. (Or find out that I’m mis-interpreting the logs)

Thanks!

~Brad

It has to be explicit by clicking the debiug buttons. I don’t call explicitly

Ok, thanks. I’ll do a search of the legacy site on my servers and see if it has anything.

I’m not positive, but we just added some settings like so to coax the JVM into more regular garbage collection:
-Dsun.rmi.dgc.client.gcInterval=600000
-Dsun.rmi.dgc.server.gcInterval=600000

I think those show up as “forced” collections, but I wasn’t able to confirm it after a few minutes of Googling. Maybe someone can confirm that for me.

I am using one of IBM’s GC log analyzers and it APPEARS to interpret the logs like so:

Automatic Young Collection
123.123: [GC [PSYoungGen: … real=.23 secs]

Automatic Full Collection
456.123: [Full GC [PSYoungGen: … real=4.70 secs]

"Forced" Full Collection
789.123: [Full GC (System) [PSYoungGen: … real=6.27 secs]

ACF 8 JRun Windows

Thanks!

~Brad