Hacker News new | ask | show | jobs
by latencyloser 2859 days ago
Just adding on that this is my experience as well.

Objects usually fell into one of two categories: discarded immediately or held for the entire application lifetime. Anything in between was problematic. Most things ended up using object pools. We also used to never really convert anything from binary format and just used wrapper objects to access the byte arrays directly.

Another sort of trick was scheduling GC for times when the application was OK to pause helped considerably, and made behavior more predictable as well.

It'd be tough to compare it to C/C++ given the complexity of the application. But without giving away specifics, we had solid performance afaik. But you're correct that it does end up making for some interesting Java code.