Go 1.35 Adds Experimental Garbage Collector
Monday, 18 August 2025

Go 1.25 has been released with an experimental garbage collector that the team says improves the performance of marking and scanning small objects through better locality and CPU scalability.

Since its initial development by Google, Go has matured as an open source project maintained by a team at Google with input from many contributors from the open source community. Go was designed as a systems programming language, and has also been used in high profile commercial successes such as Docker.

goicon2

The new garbage collector is available as an experimental option. The design improves the performance of marking and scanning small objects through better locality and CPU scalability. The developers say that benchmark result vary, but they expect somewhere between a ten and 40% reduction in garbage collection overhead in real-world programs that heavily use the garbage collector.

A new Trace flight recorder has also been added. While runtime execution traces have been available for debugging, their size and the cost of continuously writing an execution trace have made developers avoid them for debugging rare events.

The new runtime/trace.FlightRecorder API provides a lightweight way to capture a runtime execution trace by continuously recording the trace into an in-memory ring buffer. When a significant event occurs, a program can call FlightRecorder.WriteTo to snapshot the last few seconds of the trace to a file. This approach produces a much smaller trace by enabling applications to capture only the traces that matter.

There's also a new, experimental JSON implementation, which can be enabled at build time.

One change of note to the language specification is that the notion of core types has been removed in favor of dedicated prose. Core types were introduced in Go 1.18 as an abstract construct that was introduced for expediency and to simplify dealing with generic operands (operands whose types are type parameters). In practice, core types have caused problems, and have now been removed in favor of explicit (and equivalent) prose where needed. The team says this simplifies the Go spec and improves type inference.

Go 1.25  is available for download now.

goicon2

More Information

Go Download Page

GoLang Org Webpage

Related Articles

Go 1.24 Adds Generic Type Alias Support

Go 1.23 Improves Tools

Go 1.21 Adds New Built-Ins 

Golang Back In TIOBE Top 10 

Why Is Go Good?

Insights Into Where Go Is Going

A Programmer's Guide To Go

A Programmer's Guide To Go Part 2 - Objects And Interfaces

A Programmer's Guide To Go Part 3 - Goroutines And Concurrency

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


EU Commission Reactivates Bug Bounties
11/08/2025

After a period of inactivity, the EC Open Source Programme Office (EC OSPO) has awarded a contract for organizing bug bounties on open source software.



Langfuse Goes Truly Open Source
04/08/2025

The news is that Langfuse, the LLM observability platform,
has made all it commercial product features available for free and open source. But first of all, what is Langfuse?


More News

pico book

 

Comments




or email your comment to: [email protected]