In this 2-part blog we’ll take a look at how I used the go profiling and built-in benchmarking tools to optimize a naive ray-tracer written in Go.

  1. Introduction.
  2. Why Go?
  3. Multi-threading.
  4. Using pprof to identify bottlenecks.
  5. Reducing allocations and Caching.
  6. Conclusion of part 1.

(Note: Most of this blog post is based on using Go 1.13)

Source Code

The full source code for my little ray-tracer can be found here: https://github.com/eriklupander/rt.

In this 2-part blog we’ll take a look at how I used the go profiling and built-in benchmarking tools to optimize a naive ray-tracer written in Go.

Introduction.
Why Go?
Multi-threading.
Using pprof to identify bottlenecks.
Reducing allocations and Caching.
Conclusion of part 1.

(Note: Most of this blog post is based on using Go 1.13)
Source Code
The full source code for my little ray-tracer can be found here: https://github.com/eriklupander/rt. […]