Christopher Berner

6 minute read

I recently decided to learn more about Rust, and wrote a high performance RaptorQ (RFC6330) library. RaptorQ is a fountain code, and the core of the algorithm is a lot of matrix math over GF(256) – which translates into lots of XORs and reads from lookup tables. After getting the initial implementation working, I set about optimizing it. Below is a journal of the steps I took to profile and optimize the implementation. By the end, I’d achieved a 24.7x speedup!

Christopher Berner

2 minute read

I skipped 17.04, since it didn’t seem to add much that I was excited about, but 17.10 has switched from Unity back to Gnome3, so I wanted to give it a try. I did a fresh install of 17.10 on my Macbook Pro Retina mid-2012 (rMBP 10,1). It continues to simplify the installation process, and seems quite stable so far.

Christopher Berner

2 minute read

I recently spent a bunch of time investigating why a Java application was spending a significant amount of time paused, even when garbage collection cycles were only taking ~200ms. The issue turned out to be other safepoints.