Profile-Guided Optimization (PGO) in Go 1.21 — PGO has been a popular topic for blog posts recently, but here’s an as-close-to-official-as-it-gets example of using it to improve code, including deeper dives into two major optimizations enabled by the process. If nothing else convinces you to give it a shot, consider this: “In Go 1.21, workloads typically get between 2% and 7% CPU usage improvements from enabling PGO.”
Michael Pratt (The Go Team)
|
Go! Experts at Your Service — Do you need help filling skill gaps, speeding up development & creating high performing software with Go, Docker, K8s, Terraform and Rust? We’ll help you maximize your architecture, structure, tech-debt and human capital.
Ardan Labs Consulting sponsor
|
QUICK BITS:
-
Go 1.21.1 and 1.20.8 have been released. Minor point releases with some security fixes.
-
I want to take another opportunity to link to The Free Gophers Pack by Maria Letta – it's a helpful set of Go gopher illustrations (based upon the original by Renée French) and we used it in today's lead image.
-
Talking of the Go gopher, back in 2016 Renée French gave an ▶️ interesting talk about the Go gopher, how it came together, and some of Renée's favorite adaptations of it.
-
If you've got to write any C++, coost is worth a look. It's a tiny Boost-esque library to make C++ easier to write and with a little more Go flavor, including Go-style coroutines.
-
IEEE Spectrum has released its list of 'top programming languages' in 2023 and Go does pretty well in 8th place.
-
📅 🤖 In a few weeks I'm attending the AI Engineer Summit in SF – if you're into the rapidly growing field of using AI and ML tools and technologies alongside software development, check it out. Even if you can't attend, you can snag a free remote ticket to watch from afar.
|
Free Course: Temporal 102 with Go — Learn how to utilize the full development cycle in Temporal with this practical follow-up to our essentials 101 course.
Temporal Technologies sponsor
|
Participle 2.1: A Simple Parser Package — Aims to provide a straightforward and idiomatic way to define parsers in Go using a familiar approach of using struct field tags to define a grammar, so if you’ve used encoding/json before, you’re well on your way.
Alec Thomas
|
QUICK RELEASES:
-
Chroma 2.9
↳ Pure Go general purpose syntax highlighter.
-
Lingua 1.4
↳ Natural language detection library.
-
sqlc 1.21
↳ Generate type-safe code from SQL.
-
|
|