No announcement yet.

Go 1.8 Baking Garbage Collector Improvements, Lower Cgo Overhead

  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    Originally posted by Palu Macil View Post

    I read that article a couple weeks ago and found it to be pretty sloppy. Overall it's obviously written by someone with a lot of experience, but it focuses in the initial release of the Go GC when there have been major updates in the year and a half since. Why didn't it talk about Go's current GC instead? Another thing it was weird about was saying that Java has a GC with similar latency, and then it mentions the latency of this Java GC low latency option, which is an order of magnitude slower than Go's. It also doesn't discuss that Go has better escape analysis, making the GC not needed much of the time where it would be in Java. Overall, the author seemed very smart, but I couldn't help but wonder if someone with so much experience and such huge errors in their writing was blinded by an affection for Java and picked facts in a way that could be misleading.
    • A zero-pause (or almost zero-pause) collection regime significantly increases overheads for normal program execution. This is particularly true with multithreaded languages like Java.
    • Schemes that use a dedicated thread or threads to do garbage collection can get swamped if the application generates too much garbage.
    • Any GC scheme will give you poor performance if the application's memory usage patterns are too "lumpy" and/or you don't have enough physical and virtual memory.


    How Garbage Collection Works in Java : The garbage collector is a program which runs on the JVM which gets rid of unused objects which are not being used by a Java application anymore. What is the garbage collector in Java? Why Garbage Collection in Java?