5 ms·
True, but object pools enables you to reuse objects, which in turn allows you to avoid or postpone GC (if done correctly).
by Skinney 11y ago
True, but object pools enables you to reuse objects, which in turn allows you to avoid or postpone GC (if done correctly).
- chrisseaton 11y agoBut object pools prevent escape analysis and scalar replacement of objects, which wouldn't create garbage in the first place.
- eropple 11y agoIn theory, this sounds true. In practice, it isn't. I've done pooled versus non-pooled tests of objects like Vector3's in libgdx and the difference in memory pressure is fairly huge. The JVM is really, really smart, but this is a well-understood area where you sometimes have to break the rules and do something stupid (and it is stupid) for the sake of perf.
- eropple 11y agoOh--and also consider that some of us (hi) aren't writing for HotSpot, yeah?
- kasey_junk 11y agoParticularly in concurrent contexts escape analysis offers you no help.