3 ms·
Still feels like golang or maybe a 3rd party addition (not sure if that’s possible? Assume not) could just make a GC with a few more knobs, and would be a net b
by nhoughto 5y ago
Still feels like golang or maybe a 3rd party addition (not sure if that’s possible? Assume not) could just make a GC with a few more knobs, and would be a net benefit to the community. Every time I read about golang gc feels like the solutions are fighting the framework a little/a lot.
There is tons of great gc research/experiments/learnings out there that can have real benefits, maybe the JVM with its zillions of knobs is a step too far but find a middle ground seems like it would help people.
- philosopher1234 5y agoThis article seems to have made it work. Have you seen cases where it doesn’t?
- xyzzy_plugh 5y agoComparing JVM tuning with Go GC tuning is night and day. I've never not needed to tune the JVM when deploying software. Conversely, I've never needed to tune Go GC. That's not to say tuning isn't valuable or necessary, but that the vast, vast majority of Go programs will never need tuning. I cannot in good faith say the same about JVM programs, even with the most recent and modern GC profiles.
- dikei 5y agoIt's also easy to over-tune your JVM because there's so many options. For modern JVM, I've found that only setting a large enough heap size is good enough for the majority of the software.
- kaba0 5y agoIf you had to tune the JVM, you hadn’t tried it in the last 8 years at least. Other than possibly max heap size, G1 should only ever be tuned by the target pause time value, which chooses between latency and throughput.
- adgjlsfhk1 5y agoThat checks out since anyone starting a new project in Java in the last 8 years. From my perspective, C# is just Java but better. I understand why Java has worked so hard not to break stuff, but it has left a language that is fundamentally broken in about 3 ways. (typesystem/generics, boxed vs unboxed types, Nullable by default)
- kaba0 5y agoHow is nullable by default fixed in c#? The typesystem is perfectly fine, as well as generics. Do note that the majority of languages does type erasure - it is not a flaw, but a feature. Boxed/unboxed I agree could take a bit of love but that is happening with Valhalla.
- adgjlsfhk1 5y agoThe type system isn't fine. Try making an ArrayList<int> or a Integer[]. Also, due to type erasure, it is impossible to check the type of a generic at runtime which can be really annoying.
- kaba0 5y ago> Try making an ArrayList<int> or a Integer[] Yes and that is due to boxing/unboxing. This is also being worked on. And while you indeed can’t check the generic type of a generic object, I really rarely see any reason for that. Like, if you have written code in any language without reflection, you can’t do that for any object and it is not a hindrance in itself.
- pjmlp 5y agoStuck in Java 7?