Mmm

Languages and libraries

memory management library

SHOW HN2015

72points
29comments
#376of 2,565 in 2015
Top 15%of 2015 by points

How HN took it

CuriousMostly questions and neutral comments

0 positive, 5 neutral or asking, 1 mixed, 3 critical, out of 9 comments about the project. Thread score -0.26.

Design: 0 for, 2 againstIdea: 0 for, 1 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Idea is useful for Go services hitting GC latency limits

    From 2 comments
    • Infrequently enough that it's usually premature optimization to spend too much time worrying about it. But in Go's core application space, high-load network applications,…
      jerf on HN
    • One might actually suffer from GC overhead much more than that, i.e. it might be the number one thing to be aware of and optimize, especially if your program has millions of…
      jorangreef on HN

Objections

  • Using reflection and interface casts may allocate on the GC heap, undermining the goal

    From 2 comments
    • It seems a bit contradictory to write a manual memory management library in Go and _then use type reflection as a shoehorned version of generics_. It must be that the author only…
      slimsag on HN
    • Also, don't reflection and/or interface casts for anything larger than a pointer allocate on the GC heap in Go? That is, isn't it using GC to implement no-GC?
      pcwalton on HN
  • Premature optimization; profile and reduce allocations first

    From 2 comments
    • Infrequently enough that it's usually premature optimization to spend too much time worrying about it. But in Go's core application space, high-load network applications,…
      jerf on HN
    • Much more than "a realistic chance of optimizing everything else to the point that GC time becomes your biggest problem"?
      jerf on HN
  • Benchmarks use forced STW GC calls, not representative of production

    From 1 comment
    • You use runtime.GC() when you did your benchmark. This tells the Go runtime to do an aggressive stop the world GC, which it does. The normal GC is concurrent and if you use it…
      _rlh on HN

Requests

  • Report reproducible gctrace latency results to the Go team

    From 1 comment
    • Some folks export GODEBUG=gctrace=1 which will result in the GC dumping out a lot of interesting information including stop the world latency. It doesn't increase the determinism…
      _rlh on HN

Questions

  • How often does GC need to run for it to matter in overall speed?

    From 1 comment
    • The benchmarks seem to revolve around the invoking of the collector. I am very curious as to how common it would be to do that often enough for it to matter in terms of overall…
      eljimmy on HN

Alternatives named

  • External caches like memcache or Redis over RPC

    From 1 comment
    • There's also #4, using a ready-to-use external cache that can be accessed over RPC/network. Like memcache, or Redis. I'm sure you've thought of it, so can you explain why it…
      giovannibajo1 on HN
  • Using Rust or C for the cache, called from Go via RPC

    From 1 comment
    • Infrequently enough that it's usually premature optimization to spend too much time worrying about it. But in Go's core application space, high-load network applications,…
      jerf on HN
  • Go GC tuning via GOGC and concurrent collector in Go 1.5

    From 1 comment
    • Some folks export GODEBUG=gctrace=1 which will result in the GC dumping out a lot of interesting information including stop the world latency. It doesn't increase the determinism…
      _rlh on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/10649059)