BT
x Your opinion matters! Please fill in the InfoQ Survey about your reading habits!

Go 1.1 Races Ahead (Safely)

by Jeff Martin on Jun 26, 2013 |

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.

 

Performance

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 golang.org. (Note that the current release is Go 1.1.1, which includes minor bug fixes to the major 1.1 release.)

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

Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT