Originally posted by sindr
View Post
Unlike Go, Java's GC is very tunable. So each of those "we've optimized for..." lines should really read "we've set the GC defaults for...". No matter how the JRE is configured out-of-the-box, not only do you get to tune the GC in a million ways, you also have a couple more GCs to choose from.
Go, on the other hand, decided this is too much and went with the "one size fits all" approach. With all the benefits and drawbacks. One of the drawbacks being over there the defaults actually matter and they will hurt if/when they don't match what you need.
Garbage collectors being automated beasts, there will always be a use case that will bring out the worst in any implementation. Imho if your usage patterns are so wildly different that that cannot be accommodated by any combination of GC parameters, you've just picked the wrong tool/language for the job.
Comment