Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #5885

W

Words from Shane

Personal blog · shane.ai/postsprogrammingsystems

Words from Shane is a personal blog at shane.ai about programming and systems. Since 2022, 14 different Hacker News readers have linked it 17 times, most often “CGO Performance in Go 1.21”. It is still writing: the last post was on 2025-03-11, and you can follow it by feed.

Visit the blog
17mentions?
14HN people?
2022–2026first – last linked?
Links on Hacker News per year · peak 10 in 2023

Too few sampled comments (7) to say how often HN recommends it.?

Why HN links it

Commenters link Shane's posts as sources for Go and cgo call overhead benchmarks, and one points to a Rails load-testing write-up. No comment judges the writing.

Summarised by Claude from a sample of 7 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

On tech

Most-linked posts?

  1. CGO Performance in Go 1.21
    9 people · 9 mentions · first linked 2023-09-01
  2. Threads and Goroutines
    3 people · 3 mentions · first linked 2023-07-21
  3. Webapp Load Testing Tips
    2 people · 2 mentions · first linked 2022-12-29

What Hacker News says?

  1. There are two reasons: • Go uses its own custom ABI and resizeable stacks, so there's some overhead to switching where the "Go context" must be saved and some things locked. • Go's goroutines are a kind of preemptive green thread where multiple goroutines share the same OS thread. When calling C, the goroutine scheduler must jump through some hoops to ensure that this caller doesn't stall other goroutines on the sam…

    Comment linking /posts/cgo-performance-in-go1.21/

    on “Migrating away from Rust”
  2. Submitted CGO Performance in Go 1.21 as a story · 3 points

    HN discussion
  3. > p.s.: I forgot to mention the reason interop was brought up - in C# it can be zero cost or nearly zero cost because it is something that was considered at the language and platform inception. It is one of the reasons C# will never use green threads and eventually will move over upgraded runtime handled task system (mind you, current day state machine implmentation works well, but can be improved). The cost of FFI…

    Comment linking /posts/cgo-performance-in-go1.21/

    on “More powerful Go execution traces”
  4. Submitted Backtraces with Strace as a story · 1 points

    HN discussion
  5. https://shane.ai/posts/cgo-performance-in-go1.21/

    Comment linking /posts/cgo-performance-in-go1.21/

    on “Rustgo: Calling Rust from Go with near-zero overhead (2017)”
  6. Submitted Some notes on 'JavaScript JIT and deopt' as a story · 1 points

    HN discussion
  7. I think most of the arguments in this essay rely on this single premise: "The second thing I want you to take away is that imperative languages are not inferior to functional ones." There is an implied assumption that async/await is a "functional feature" that was pushed into a bunch of innocent imperative languages and polluted them. But there is one giant problem with this assumption: async/await is not a function…

    Comment linking /posts/cgo-performance-in-go1.21/

    on “Playground Wisdom: Threads Beat Async/Await”
  8. Submitted CGO Performance in Go 1.21 as a story · 1 points

    HN discussion
  9. There's a lot of subtleties. It's really easy to accidentally load test the wrong part of your web application due to differences in compression, cache hit ratios, http settings, etc. Shameless self promotion but I wrote up a bunch of these issues in a post describing all the mistakes I have made so you can learn from them: https://shane.ai/posts/load-testing-tips/

    Comment linking /posts/load-testing-tips/

    on “Ruby on Rails load testing habits”
  10. Submitted CGo Performance in Go 1.21 as a story · 1 points

    HN discussion
  11. It was somewhat slow about a decade ago - you can see - (2015, Go 1.5) Calls cost about 170ns https://www.cockroachlabs.com/blog/the-cost-and-complexity-o... - (2017, Go 1.8) Cgo speedup by 50% https://go.dev/doc/go1.8#cgoperf - (2023, Go 1.21) Calls cost about 40ns https://shane.ai/posts/cgo-performance-in-go1.21/ - (2026, Go 1.26) Cgo speedup by another 30% https://go.dev/doc/go1.26#faster-cgo-calls A current benc…

    Comment linking /posts/cgo-performance-in-go1.21/

    on “Gossamer: a Rust-flavoured language with real goroutines and pause-free memory”
  12. Submitted CGO Performance in Go 1.21 as a story · 1 points

    HN discussion
  13. > Of course, there is massive overhead in doing so. Some concrete numbers for Go: • Calling C from Go: ~40-50ns [1] [2] • Calling Go from C: ~100-200ns [3] [1] "Cgo calls take about 40ns, about the same time encoding/json takes to parse a single digit integer. On my 20 core machine Cgo call performance scales with core count up to about 16 cores, after which some known contention issues slow things down." ( https://…

    Comment linking /posts/cgo-performance-in-go1.21

    on “Ruby Outperforms C: Breaking the Catch-22”
  14. Submitted Threads and Goroutines as a story · 1 points

    HN discussion
  15. Submitted Threads and Goroutines as a story · 1 points

    HN discussion
  16. Submitted Threads and Goroutines as a story · 1 points

    HN discussion
  17. Submitted Webapp Load Testing Tips as a story · 1 points

    HN discussion

Search all of HN for shane.ai

Linked by the same people?