Go 1.1 Races Ahead (Safely)

| by Jeff Martin Follow 17 Followers on Jun 26, 2013. Estimated reading time: 1 minute |

The Go language's major 1.1 release completes the delivery of several new features announced at the time of its beta review period. Many developers will see benefits the moment they recompile their code, while other features will require the use of new libraries or patterns to be utilized.



Those seeking detailed information on the performance increases can look to Go contributor Dave Cheney, who has produced an in-depth series of articles detailing exactly how much the performance in Go 1.1 has increased. In part 1, Cheney uses the Linux/AMD64 platform for his measurements, with the majority of benchmarks recording increased speed on 1.1. Interestingly, the performance of Gzip and GobEncode has slightly regressed. Cheney's benchmarks for the net/http package show improvements across the board, with the caveat that the Windows and FreeBSD platforms will not match the Linux performance until Go 1.2 is released. Additional articles in Cheney's series detail results for i386 and ARM (which includes the Raspberry Pi).


Off to the Races

Go's toolset receives the big addition of a race detector for use when debugging memory synchronization errors. A race condition occurs in a multithreaded system when two or more threads attempt to manipulate data structures simultaneously. Looking at Go specifically, “a data race occurs when two goroutines access the same variable concurrently and at least one of the accesses is a write.” Due to the nature of the bugs, these are often difficult to locate and correct, and this new tool seeks to ease the process. Currently the race detector is available for use on the 64-bit x86 architectures on Windows, Linux, and Mac OS X platforms.


Getting Go

The major supported platforms for Go include FreeBSD, Linux, Mac OS X, Windows, and NetBSD. All support i386 and AMD64 architectures with FreeBSD and Linux additionally supporting ARM. Instructions on installing Go and direct downloads are available on at (Note that the current release is Go 1.1.1, which includes minor bug fixes to the major 1.1 release.)

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread


Login to InfoQ to interact with what matters most to you.

Recover your password...


Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.


More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.


Stay up-to-date

Set up your notifications and don't miss out on content that matters to you