The Go team explains compiler optimizations

#​508 — May 21, 2024

Unsub  |  Web Version

Go Weekly

▶  Boosting Performance of Go Apps with Optimizations — 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 (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. 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

How to Migrate from LaunchDarkly to OpenFeature — 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 — 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 — 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 BeginsGoLand 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.. — 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:

🛠 Code & Tools

Go Cover Treemap: Visualize Go Code Coverage as a 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 — 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 — 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 — Inspired by the similarly named Quartz scheduler 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 — 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 — Essentially a TUI client for mpv.

Viktoras Agejevas

  • gosec 2.20 – 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 – Redis re-implemented with SQLite. v0.3 adds the set (S*)  commands.

  • SFTPGo 2.6 – Full featured SFTP server. (Docs.)

  • pgRoll 0.6 – Zero-downtime, reversible schema migrations for Postgres.

  • Ebitengine 2.7.4 – Go's simple 2D game engine drops Go 1.18 support.

  • gRPC-Go 1.64 – Go implementation of gRPC for HTTP/2 based RPC.

  • Faktory 1.9 – Language-agnostic persistent background job server.

  • NATS.go 1.35 – Go client for the NATS messaging system.

  • quic-go 0.44 – Pure Go QUIC implementation.

  • Buf 1.32 – CLI tool for working with Protocol Buffers.

🎁 And one for fun..

Miniflux 2: Minimalist and Opinionated Feed Reader — So minimalist that no ORM or framework is used (just Postgres) and only the most essential of vanilla JavaScript. GitHub repo. Want a feed to try? This newsletter has one!

Frédéric Guillot

https://golangweekly.com/issues/508

Created 25d | May 21, 2024, 5:40:04 PM


Login to add comment