6 ms·
Tuning Java Servers (2014)
- nailer 11y agoRe: GC tuning, one investment bank simply disabled the GC during the trading day: purchasing massive amounts of RAM is cheap, having the GC non-deterministically kick in when you're making a decision or executing a trade is expensive. (Yes, Java isn't the most performant language but lots of developers know it and it's great for testing algos quickly)
- tootie 11y agoIsn't that just risking a crash? Why not just allocate a 300GB heap and hope GC kicks in rarely?
- papercrane 11y agoHoping the GC kicks in rarely is not a great strategy. Usually when I see something like this the developers have gone out of their way to write garbage-free code (see Coral Blocks for an example of this.)
- rainhacker 11y agoIf a code is truly garbage free (not sure how practical this is) won't it be independent of the heap size ? I know some teams do claim to write garbage free code to prevent GC from ever kicking of.
- papercrane 11y agoYeah, actually I think you're right. I don't think you can actually disable the GC in JVM unless you patch it. Truly garbage free is probably not practical 99% of the time. Normally you should just generally try to either have objects that are short-lived or practically permanent.
- cam- 11y agoAgree, you want the GC sipping constantly, not gulping, or embarrassingly pulling up its pants.
- SourPatch 11y agoI assume that was a custom VM. As far as I know, there is no way to disable GC in the official Oracle JVM.
- LoneWolf 11y agoI too would like to know that was the VM and how it was disabled.
- nailer 11y agoI'm pretty sure it was a custom VM: I wasn't on the team, but my own group (Unix) was playing with custom IP stacks with the same goal (reducing latency, increasing determinism).
- nradov 11y agoCan you do this with real-time Java? I understand that it allows you to do all your memory allocation first, then switch into real-time mode with no GC. http://www.oracle.com/technetwork/articles/java/nilsen-realtime-pt1-2264405.html http://www.oracle.com/technetwork/articles/java/nilsen-realt...
- hemapani 11y agoWith collectors like CMS, you can control after what percentage of the GC is filled GC will kick in. I think you can use that get the same effect. This is only for old gen.
- hemapani 11y agoYou could get the same effect through off heap memory allocation.
- needusername 11y ago> disabled the GC Disabled the entire GC or just the old gen GC?