---
title: "Four years of quiet Go improvements"
publication: "Go Weekly"
issue: 430
published_at: "2022-09-30"
canonical_url: "https://golangweekly.com/issues/430"
---

Plus go mod's lesser known features, spying on Windows, and another new RPC framework. |        

#​430 — September 30, 2022 

[Unsubscribe](https://golangweekly.com/leave/*|UID|*)|[Read on the Web](https://golangweekly.com/issues/430)   

The _Go Weekly_ Newsletter 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/kpbzbqeooql8hapczcne.jpg)](https://go.dev/blog/go119runtime)  

[What's New in Go's Runtime: Four Years Later](https://go.dev/blog/go119runtime) — It’s always fantastic to get a roundup from the core Go team on their progress, and while Go 1.13 through 1.18 have certainly seen their fair share of enhancements, we also get to learn a bit more about Go 1.19’s memory limit feature and improved [garbage collection](https://go.dev/doc/gc-guide). Some highlights from the past few years: 

- Big efficiency gains on multicore systems.
- Go's scheduler spends up to 30% less CPU time spinning.
- Go's GC limits its CPU use when the app is idle, reducing CPU spikes.
- `defer`-red function calls now cost as little as regular function calls (mostly).
- More efficient timer management. In short, even simply using Go 1.19 will benefit your code's performance without doing anything else at all. 

Michael Knyszek   [![\](https://copm.s3.amazonaws.com/4936959b.png)](https://buildpulse.io?utm_source=golangweekly&utm_medium=referral&utm_campaign=202209-golangweekly) 

[Automatically Detect and Track Flaky Tests in Go](https://buildpulse.io?utm_source=golangweekly&utm_medium=referral&utm_campaign=202209-golangweekly) — BuildPulse highlights your project's most disruptive tests so you know exactly where to focus first for maximum improvement. To top it off, [BuildPulse](https://buildpulse.io?utm_source=golangweekly&utm_medium=referral&utm_campaign=202209-golangweekly) works seamlessly with Go, and you can set it up in just a few minutes. 

BuildPulse sponsor   

[Steampipe: Query Your Cloud Services with SQL](https://steampipe.io/) — Use SQL to query and even join across [over 50 APIs](https://hub.steampipe.io/plugins) from providers like Airtable, AWS, Heroku, Okta, Splunk, Slack and Stripe, as well as social media sites like Reddit and Hacker News. It’s pretty cool and [open source](https://github.com/turbot/steampipe) (AGPL) to boot. 

Turbot HQ, Inc   

[Build a Tic-Tac-Toe Game in the a GitHub `README.md` File?](https://betterprogramming.pub/play-tic-tac-toe-from-github-readme-md-file-754539603380) — I admit that the author’s lede of _“Pushing the boundaries of the Markdown file using Go”_ hooked me and it’s quite a fun little experiment. The actual “game” is [here](https://github.com/sridhar-sp/tic-tac-toe), though bear in mind you’re sharing the board with.. the whole Internet. 

Sridhar Subramaniam   

**IN BRIEF:** 

- JetBrains has started [its 2022.3 'Early Access Program'](https://blog.jetbrains.com/go/2022/09/23/the-goland-2022-3-early-access-program-has-started/) for the _GoLand_ Go IDE. As well as getting to see all the new features, one benefit of their EAPs is it acts as a sort of extended trial period if you want to check it out.
- 🎄 Is it too early to think about Christmas? Not if you want to write something for this year's [Go Advent Calendar!](https://golang.christmas/)
- 📅 Bill Kennedy reminded us that the official Go wiki has a [useful conferences page](https://github.com/golang/go/wiki/Conferences) listing Go events past and future.   

[A Complete Guide to Working with Cookies in Go](https://www.alexedwards.net/blog/working-with-cookies-in-go) — Alex covers the basics and then dives into secure, tamper-proof, and encrypted cookies to make sure the data stays safe (though whether it _needs_ such security is another question you’d need to ask about your use case, as there are alternative methods). 

Alex Edwards   

[Build a Custom Go Linter in Five Minutes](https://blog.sylver.dev/build-a-custom-go-linter-in-5-minutes) — Not so much building a linter from scratch, but by directing [Sylver](https://sylver.dev/), a source code analysis tool, with queries for finding certain patterns. 

Geoffrey Copin   

▶[Buggy BLANK Identifiers in Go](https://www.youtube.com/watch?v=R_odJnFIqPA) — A look at all the things you can do with blank (`_`) identifiers, and there are more than you think, even if most of them seem useless. Oh, and the bug he found is fixed in 1.19. 

Boldly Go   

[`go mod`'s Lesser Known Features](https://verdverm.com/go-mods/) 

Tony Worm  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/klqotcy460kidgxvecm4.jpg)](https://www.fibratus.io/)  

[Fibratus: Windows Kernel Exploration and Observability Tool](https://www.fibratus.io/) — Capture kernel events, such as file I/O, network requests, etc., and analyze them to gain insight into what Windows is up to. ([GitHub repo.](https://github.com/rabbitstack/fibratus)) 

Fibratus   

[Neffos: A WebSocket-Based Real Time Framework](https://github.com/kataras/neffos) — You might use something like this as the backend for a chat system, say. Supports scaling out using Redis or NATS, handles reconnection logic, broadcasting, etc. 

Gerasimos (Makis) Maropoulos   

[Chrono: A Scheduler Library to Run Tasks Periodically](https://github.com/procyon-projects/chrono) — For scheduling and running tasks within the context of your Go app (not externally). 

Procyon   

[Don’t DIY Your Notifications: Send SMS, Email, and Push with One Call](https://www.courier.com/?utm_campaign=demand-gen&utm_source=email&utm_medium=go-newsletter-9-30&utm_content=homepage) 

Courier sponsor   

[fRPC: A Faster, More Flexible RPC Framework](https://loopholelabs.io/blog/announcing-frpc) — This is the second gRPC replacement framework we’ve seen recently (We linked to Connect in [issue 421](https://golangweekly.com/issues/421)) that claims much better performance along with more flexibility. 

Shivansh (Loophole Labs)   

[Mantil: Serverless Development Kit for Go and AWS Lambda](https://www.mantil.com/) — A serverless SDK that handles multi-staging, automatic code push, and easy access to AWS logs. 

Mantil   

[Gaze: File/Directory Watcher Tool](https://github.com/wtetsu/gaze) — Gaze can run a command the instant after you save a file (such as to run tests or a linter). 

tetsu   

- [Micro 4.9](https://github.com/go-micro/go-micro) – Go microservices framework.
- [RQLite 7.7](https://github.com/rqlite/rqlite) - Distributed database atop SQLite.
- [Sarama 1.37](https://github.com/Shopify/sarama) – Go library for Apache Kafka.
- [Ebitengine 2.4.5](https://github.com/hajimehoshi/ebiten) – Go's simple 2D game engine.
- [gofumpt 0.4](https://github.com/mvdan/gofumpt) - A stricter `gofmt`
- [go-binarytree](https://github.com/dnaeon/go-binarytree) – Simple binary tree implementation.     

Jobs  

[Senior Golang Software Engineer](https://grnh.se/221a61e11us) — Seeking Sr Software Engineers to build innovative technology that connects learners with experts in any subject, anytime, anywhere. 
Varsity Tutors (Nerdy)   

[Find a Job Through Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-golangweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired           

Curated by Peter Cooper and [Glenn Goodrich](https://twitter.com/ruprict). 

[Change your email](https://golangweekly.com/edit_subscription/*|UID|*) or[Stop getting the newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
