---
title: "#163: Benchmarking Go Programs"
publication: "Go Weekly"
issue: 163
published_at: "2017-06-08"
canonical_url: "https://golangweekly.com/issues/163"
---

Go Newsletter 163   . 

[Read this on the Web](http://golangweekly.com/issues/163) 

[Go Newsletter](http://golangweekly.com) Issue 163 — June 8, 2017     

Featured [Go Play Space: An Experimental Go Playground](https://goplay.space/?utm_source=golangweekly&utm_medium=email) tools An experimental alternative to the [Go Playground](https://play.golang.org/) that includes syntax highlighting, themes, and keyboard shortcuts, and uses [GopherJS](https://github.com/gopherjs/gopherjs). [Source here](https://github.com/iafan/goplayspace). Igor Afanasyev ['expvar' in Action for Gathering Metrics](https://orangetux.nl/post/expvar_in_action/?utm_source=golangweekly&utm_medium=email) A look at one of the lesser known but more useful standard library packages, `expvar`, which exposes metrics about your application. Auke Willem Oosterhoff [Benchmarking Go Programs](https://scene-si.org/2017/06/06/benchmarking-go-programs/?utm_source=golangweekly&utm_medium=email) Various ways to get benchmarks out of your Go tests, from basic Go benchmarks to flame graphs of function calls. Tit Petric [Multiplexing Golang Channels to Maximize Throughput](https://engineering.mongodb.com/post/multiplexing-golang-channels-to-maximize-throughput?jmp=cpress&utm_campaign=WW_CP_newsletter_sponsorship_FY17Q2&utm_content=sponsored&utm_medium=&utm_source=gonewsletter0608) While rewriting our database backup utility, mongodump, we utilized a “divide-and-multiplex” method to marry a high-throughput concurrent workload with a serial output. [Check it out](https://engineering.mongodb.com/post/multiplexing-golang-channels-to-maximize-throughput?jmp=cpress&utm_campaign=WW_CP_newsletter_sponsorship_FY17Q2&utm_content=sponsored&utm_medium=&utm_source=gonewsletter0608). Mongo DBsponsored[![\](https://copm.s3.amazonaws.com/47b25c31.png)](https://engineering.mongodb.com/post/multiplexing-golang-channels-to-maximize-throughput?jmp=cpress&utm_campaign=WW_CP_newsletter_sponsorship_FY17Q2&utm_content=sponsored&utm_medium=&utm_source=gonewsletter0608) [Embedding Go and groupcache in Python](https://www.nathanvangheem.com/posts/2017/06/03/embedding-golang-in-python-with-groupcache.html?utm_source=golangweekly&utm_medium=email) It’s possible to use Go to create C-like extensions that can be used in Python. Nathan Van Gheem [Unique IDs in Go](http://antoniomo.com/blog/2017/06/03/unique-ids-in-golang-part-3/?utm_source=golangweekly&utm_medium=email) The third entry in a series on sequential UIDs comparing UUIDs to ULIDs and looking at the current package options. Antonio Macías Ojeda [​​Our Go is Fine but Our SQL is Great](https://medium.com/bumpers/our-go-is-fine-but-our-sql-is-great-b4857950a243?utm_source=golangweekly&utm_medium=email) Why Bumpers eschew using an ORM and write their SQL queries themselves, along with the pros and cons of doing so. Bumpers Jobs [Golang Backend Engineer (Berlin, Germany) (f/m)](https://fraugster.com/jobs/senior-backend-engineer/) We’re looking for senior Golang developers interested in building scalable backend services for real-time anti-fraud detection. Fraugster Ltd [Opportunities Aligned with Your Interest. Try Hired](https://hired.com/join/?utm_source=petercooperpress&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-swe%29%28q2-17-go-weekly%29&utm_content=newsletter) Expedite your job search. Save time and effort. Get Hired! Hired In Brief [Gracefully Terminating a Program in Go](http://guzalexander.com/2017/05/31/gracefully-exit-server-in-go.html?utm_source=golangweekly&utm_medium=email) tutorial Alexander Guz [Quick Tip: Wrapping http.ResponseWriter for Middleware](https://upgear.io/blog/golang-tip-wrapping-http-response-writer-for-middleware/?utm_source=golangweekly&utm_medium=email) tutorial Upgear [$20 Free Credit on a new account.](http://welcome.linode.com/go-weekly?utm_source=cooperpress&utm_medium=sponsored&utm_term=go&utm_campaign=go-weekly) Linux cloud hosting starting at 1GB of RAM for $5/mo. Use promo code GO20 for $20 credit. linodesponsored [Linux Namespaces and Go Don't Mix](https://www.weave.works/blog/linux-namespaces-and-go-don-t-mix?utm_source=golangweekly&utm_medium=email) story An interesting and somewhat concerning bug with goroutines and Linux namespaces. Weave Works [`financial` Package for Go: The Math Behind the IRR function](https://medium.com/@_orcaman/package-financial-for-golang-the-math-behind-the-irr-function-1eedf225d9f?utm_source=golangweekly&utm_medium=email) story Not finding a financial package in Go, Skyline created one that includes things like IRR and NPV, if you’re into to that sort of thing. Or Hiltch [Understanding Go Interfaces](https://www.youtube.com/watch?v=F4wUrj6pmSI&utm_source=golangweekly&utm_medium=email#t=0m39s) video Francesc Campoy [Debugging Goroutine Leaks](https://www.youtube.com/watch?v=hWo0FEVr92A&utm_source=golangweekly&utm_medium=email) video Karthic Rao [17 Talk Videos from GopherChina 2017](https://www.youtube.com/playlist?list=PLx_Mc4dJcQbl4qPWbVu86u6owZeiwsErR&utm_source=golangweekly&utm_medium=email#gopherchina2017) video _Note: Most talks are in Chinese._ YouTube [Try Codeship Basic: simple hosted CI that works out of the box](https://codeship.com/features/basic-aw?utm_source=email-sponsorship&utm_medium=cpc-go-weekly-secondary&utm_campaign=cooper-basic-features-signup-campaign) Get set up with our hosted Continuous Integration service in under 3 minutes. Join thousands of customers like InvisionApp & Whole Foods. Codeshipsponsored [Gocker: A Starter Project using Docker and Go](https://github.com/ilourt/gocker?utm_source=golangweekly&utm_medium=email) tools Includes automatic rebuild in development mode and a production Dockerfile. Irwin Lourtet [vg: A dep Compatible Solution to Manging Dependencies](https://github.com/GetStream/vg?utm_source=golangweekly&utm_medium=email) tools Addresses many of the pains of using a vendor directory. Stream [aah Framework: A Scalable, Performant, Rapid Development Web Framework](https://aahframework.org/?utm_source=golangweekly&utm_medium=email) tools aah is opinionated, HTTP/2 capable, and well-documented. aahframework.​org [vim-go 1.13 Released: The Go Development Plugin for Vim](https://github.com/fatih/vim-go/releases/tag/v1.13?utm_source=golangweekly&utm_medium=email) tools Fatih Arslan [envy: Automatic Environment Variables for CLI Flags](https://github.com/jamiealquiza/envy?utm_source=golangweekly&utm_medium=email) code Jamie Alquiza [Furan: Builds and Pushes Docker Images From GitHub to a Specified Target](https://github.com/dollarshaveclub/furan?utm_source=golangweekly&utm_medium=email) code Dollar Shave Club [ksuid: K-Sortable Globally Unique IDs](https://github.com/segmentio/ksuid?utm_source=golangweekly&utm_medium=email) code KSUIDs are globally unique IDs but containing a sortable time component. Segment [Duplicacy: A Lock-Free Deduplicating Cloud Backup Tool](https://github.com/gilbertchen/duplicacy?utm_source=golangweekly&utm_medium=email) code Gilbert Chen [Embed: Static Content Embedding for Go Binaries](https://github.com/aprice/embed?utm_source=golangweekly&utm_medium=email) code Adrian Price    

Go Newsletter is curated by [Peter Cooper](https://twitter.com/peterc) and [Glenn Goodrich](https://twitter.com/ruprict) [Read this issue on the Web](http://golangweekly.com/issues/163) [See our archives](http://golangweekly.com/issues) [Change your email address](*|UPDATE_PROFILE|*)  [Stop getting this newsletter](*|UNSUB|*)  

Published by [Cooperpress](https://cooperpress.com/)
Fairfield Enterprise Centre, Lincoln Way, Louth, LN11 0LS, UK
