---
title: "The Go team explains compiler optimizations"
publication: "Go Weekly"
issue: 508
published_at: "2024-05-21"
canonical_url: "https://golangweekly.com/issues/508"
---

Plus the latest GoLand EAP begins. |        

#​508 — May 21, 2024 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/508)  

Together with [![Flipt\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_275,h_96/e_make_transparent/co_white,e_outline:10/zl7thk5biooawfm2ijz2.png)](https://streamyard.com/watch/GUWufsfksRZC)  

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/gd7nsr9iits7oojve1i3.jpg)](https://www.youtube.com/watch?v=FwzE5Sdhhdw)  

▶[Boosting Performance of Go Apps with Optimizations](https://www.youtube.com/watch?v=FwzE5Sdhhdw) — Three members of the Go team gave a talk at last week’s Google I/O about a topic we’ve covered a lot lately – using Go 1.20+’s [profile-guided optimization](https://go.dev/doc/pgo) (PGO) to essentially make your programs faster for free. The first ten minutes are an introduction to Go, but the meat starts [about ten minutes in.](https://youtu.be/FwzE5Sdhhdw?t=557) This is a great way to learn about _how_ PGO and some other Go compiler optimizations work, rather than merely their end result. 

Balahan, Pratt, and Ma   [![\](https://copm.s3.amazonaws.com/b09dad3b.png)](https://streamyard.com/watch/GUWufsfksRZC) 

[How to Migrate from LaunchDarkly to OpenFeature](https://streamyard.com/watch/GUWufsfksRZC) — Join our webinar to learn why engineering leaders are adopting OpenFeature's feature management standard (part of CNCF) that enables you to work with any feature management vendor, and how to migrate from LaunchDarkly to OpenFeature's open standard. 

Flipt sponsor   

[Thoughts on Using Go for Bioinformatics](https://bionics.it/posts/golang-for-bioinformatics) — A bioinformatician and data engineer ponders the use of various languages for scientific work, focusing on Go versus Rust, Python, Crystal, Julia and Zig. Go has a lot of plus points, but could simpler tasks be made any easier? 

Samuel Lampa   

[Generic Concurrency in Go](https://sergey.kamardin.org/articles/generic-concurrency-in-go/) — An exploration of bringing generics and goroutines together to build useful, general purpose concurrent processing patterns. Straightforward examples. It’s good to see people thinking through this stuff. 

Sergey Kamardin   

[The GoLand 2024.2 Early Access Program Begins](https://blog.jetbrains.com/go/2024/05/15/goland-2024-2-eap-1/) — [GoLand](https://www.jetbrains.com/go/) is a popular, but commercial, IDE in the Go world. As well as getting to look at the latest features, its ‘early access program’ benefits everyone by offering up to a few months of what is essentially a free-to-use trial. 

Ruslan Akhmetzianov (JetBrains)   

[Don’t Return `err` in Go, But..](https://akavel.com/go-errors) — The takeaway here is more about adding relevant details to errors to make your future debugging self’s job easier, including defining your own types and using `errors.As`. 

Mateusz Czapliński   

_QUICK BITS:_ 

- 🖐️ [This year's Stack Overflow Developer Survey](https://stackoverflow.az1.qualtrics.com/jfe/form/SV_6rJVT6XXsfTo1JI) is now open. Let's see if we can get some good representation for Go!
- 🕹️ If you enjoyed the Go-powered [Gopher2600](https://github.com/JetSetIlly/Gopher2600) Atari 2600 emulator, how about [a NES/Famicom emulator](https://github.com/maxpoletaev/dendy) complete with network multiplayer support?
- Is it time to [bring a SIMD package into Go?](https://github.com/golang/go/issues/67520)  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ym27vol3lq1ynxitydiy.jpg)](https://github.com/nikolaydubina/go-cover-treemap)  

[Go Cover Treemap: Visualize Go Code Coverage as a Treemap](https://github.com/nikolaydubina/go-cover-treemap) — An interesting way to visualize large projects by way of `go test -coverprofile`’s results. 

Nikolay Dubina   

[tinymath: Fast Go Math Library for Constrained Environments](https://github.com/orsinium-labs/tinymath) — If you’re using Go to work with microcontrollers or WebAssembly, this library trades off some precision for performance and small code size for common trigonometric, rounding, logarithmic, and similar functions. 

Orsinium Labs   

[[Webinar\] Saga Pattern Simplified: Building Sagas with Temporal](https://t.mp/4bBnKCK) — Learn how Temporal, a Durable Execution platform, lets you implement and automate Sagas more easily. 

Temporal Technologies sponsor   

[go-quartz 0.12: Simple, Zero-Dependency Scheduling Library](https://github.com/reugn/go-quartz) — Inspired by the similarly named [Quartz scheduler](https://github.com/quartz-scheduler/quartz) for Java, go-quartz makes it easy to spin up a scheduler within a Go process and trigger functions and other jobs on defined schedules. 

Eugene R.   

[go-mysql 1.8: A Pure Go Library for the MySQL Network Protocol](https://github.com/go-mysql-org/go-mysql) — Not your typical MySQL client but for when you need to interact with other clients and servers at a low level. 

siddontang   

📻 [goradion: A Terminal Based Online Radio Player](https://github.com/agejevasv/goradion) — Essentially a TUI client for [mpv.](https://mpv.io/) 

Viktoras Agejevas   

- [gosec 2.20](https://github.com/securego/gosec) – Go security checker via a CLI tool or GitHub Action. Inspects source code for security problems by scanning ASTs and SSA code representations.
- [Redka 0.5](https://github.com/nalgeon/redka/releases/tag/v0.5.0) – Redis re-implemented with SQLite. v0.3 adds the set (`S*`) commands.
- [SFTPGo 2.6](https://github.com/drakkan/sftpgo/releases/tag/v2.6.0) – Full featured SFTP server. ([Docs.](https://sftpgo.github.io/latest/))
- [pgRoll 0.6](https://github.com/xataio/pgroll/releases/tag/v0.6.0) – Zero-downtime, reversible schema migrations for Postgres.
- [Ebitengine 2.7.4](https://ebitengine.org/en/documents/2.7.html#v2.7.4) – Go's simple 2D game engine drops Go 1.18 support.
- [gRPC-Go 1.64](https://github.com/grpc/grpc-go) – Go implementation of gRPC for HTTP/2 based RPC.
- [Faktory 1.9](https://github.com/contribsys/faktory) – Language-agnostic persistent background job server.
- [NATS.go 1.35](https://github.com/nats-io/nats.go/releases/tag/v1.35.0) – Go client for the NATS messaging system.
- [quic-go 0.44](https://github.com/quic-go/quic-go/releases/tag/v0.44.0) – Pure Go QUIC implementation.
- [Buf 1.32](https://github.com/bufbuild/buf/releases/tag/v1.32.0) – CLI tool for working with Protocol Buffers.  

🎁 And one for fun.. 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/mckgeuefp57aymgkpbec.jpg)](https://miniflux.app/)  

[Miniflux 2: Minimalist and Opinionated Feed Reader](https://miniflux.app/) — So minimalist that no ORM or framework is used (just Postgres) and only the most essential of vanilla JavaScript. [GitHub repo.](https://github.com/miniflux/v2) Want a feed to try? [This newsletter has one!](https://golangweekly.com/rss) 

Frédéric Guillot         

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

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

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