Taming Go’s Memory Usage, or How We Avoided Rewriting Our Client in Rust

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • proposal

    Go Project Design Documents

  • Very nice write up.

    * Go’s focus on simplicity means that there is only a single parameter, SetGCPercent, which controls how much larger the heap is than the live objects within it.*

    FWIW, there is a new proposal from a member of the core Go team to add a second GC knob in the form of a soft limit on total memory:

    https://github.com/golang/proposal/blob/master/design/48409-...

    It includes some provisions to make sure that the application can keep making progress and avoid death spirals (part of the reason why it is a “soft“ limit), and also includes some new GC-related telemetry.

    From the blog write up, a second GC knob with a soft limit might have only been a minor help, with the bigger wins coming from the code changes they described in the blog.

    This kind of analysis and remediation would work just as well in Java and is often a more rigorous and effective approach than the author's somewhat Java-inspired initial idea of fiddling with GC parameters.

    One big difference is that the Java runtime design intent is more in the vein of 'converting memory into performance'. On HN Ron Pressler ('pron) has written a bunch of interesting stuff about that over the years

    https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • too-many-lists

    Learn Rust by writing Entirely Too Many linked lists

  • You might be interested in this:

    https://rust-unofficial.github.io/too-many-lists/

  • todo-backend

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts