Conventional wisdom suggests that the key to high performance servers are native threads, or more recently event loops.
Neither solution is without its downsides. Threads carry a high overhead in terms of scheduling cost and memory footprint. Event loops ameliorate those costs, but introduce their own requirements for a complex callback driven style.
Go is a general purpose programming language in use in a wide range of domains, and is especially suited to writing network software. Go was introduced in 2009 with the explicit goal of helping programmers write programs that could solve problems of Google’s scale, and that means writing high performance servers.
This talk will focus on the features of the Go language and runtime environment, that (mostly) transparently allow programmers to write simple, high performance network services without resorting to native threads or event loop-driven callbacks.
David Cheney has been involved with the Go project for over five years. He is a regular contributor to the language, focusing on Go on ARM processors. He has previously ported Go to freebsd/arm, solaris/amd64, and is working on a port to linux/arm64. David writes frequently about Go on his blog, http://dave.cheney.net/. David has spoken locally and internationally — full details can be found at http://dave.cheney.net/about. Together with Andrew Gerrand, David runs the Sydney Go User’s group.
©2015, O'Reilly Media, Inc. • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • email@example.com