5 ms·
Someone needs to implement Go in the JVM so it can finally have a good GC
by zelly 6y ago
Someone needs to implement Go in the JVM so it can finally have a good GC
- alexruf 6y agoWhat’s wrong with Go‘s GC. I think it’s actually pretty fast and gets better with each release.
- pjmlp 6y agoPlenty of stuff, https://github.com/golang/go/issues/42430 https://github.com/golang/go/issues/42430 As usual, Go knows better than other the older languages and then a kludge solution gets done.
- agnivade 6y agoIt seems to me like your opinion about Go GC is that it is an extremely buggy and slow piece of software. Every software has bugs. Whether those bugs are a major blocker for people to use them or not should be taken into account. The issue that you pointed out are difficult items which need more time and thought to take care of. But they aren't something which should cause any major pain in your day-to-day usage of Go. I would say as of 1.15, GC has improved by leaps and bounds and at this point, all major warts with the system are taken care of. But then again, I don't know in what context you are using Go. It may be the case that you have been affected by any of these bugs, and unless they get fixed, using Go is a blocker for you.
- WJW 6y agoIt's not particularly fast, for instance. The golang GC has pretty short pause times but its actual throughput in GB/s collected does not stand out. Short pause times are nice for interactive systems but don't matter as much for eg batch or background jobs, where total time to completion is much more important. The sister comment also has a link to a GH issue detailing many more specific flaws of the GC.
- kodablah 6y agoYou jest but I toyed with just this and came to the conclusion that it is feasible. In my case, I just transpiled to Kotlin (but would take a different approach when Loom is completed). I don't have much interest in the JVM anymore, but all of these [0] Go files compile and run. Because I'm mad, I also toyed with the inverse, JVM to Go [1], and seriously stressed the compiler [2]. 0 - https://github.com/cretz/go2k/tree/master/compiler/src/test/go https://github.com/cretz/go2k/tree/master/compiler/src/test/... 1 - https://github.com/cretz/goahead https://github.com/cretz/goahead 2 - https://github.com/golang/go/issues/18602 https://github.com/golang/go/issues/18602
- kzrdude 6y agoMaybe something in GraalVM? serious implementations of golang there don't seem to exist yet, though.