Skip to main content
Adventures in Cgo Performance
  1. Talks/

Adventures in Cgo Performance

·270 words·2 mins

Abstract
#

Cgo is a powerful tool in the Go programmer’s arsenal. It allows Go programmers to interoperate with other languages. However, Cgo documentation is scarce and best practices for performance are hard to come by. In this tutorial session, I discuss lessons I’ve has learned working on the Go API for Wallaroo, a high-performance distributed stream processor written in Pony.

I cover hard-won knowledge about using Cgo in performance sensitive code including: ways in which Cgo makes interoperation with other languages difficult, how you can work around common sources of performance and scaling problems, and an issue with the Go runtime that can’t be worked around.

Versions of this talk
#

Links#

Blog posts by me on cgo
#

Wallaroo references
#

Learning cgo references
#

Cgo runtime references
#

Garbage Collecton and Go pointers references
#

Go atomics package related references#

Additional References
#