Lessons Learned from Optimising a High Performance Library
This talk will take you through optimising the “Tracktion Engine” codebase from a practical perspective. Tracktion Engine is a large, real-time audio library powering many audio apps across desktop, mobile and embedded platforms. Filled with real-world examples and tales of success and failure, this talk will give you the tools and knowledge to approach optimising your own code in a pragmatic and confident way.
First, we’ll cover how to actually measure and compare performance across different platforms, the tools to do this, and how to integrate continuous performance measuring over time into your CI.
Next, we’ll look at the various strategies for identifying areas for optimisation and how these relate to real-world use cases. We’ll look at how CPU instructions and memory usage can influence execution time and how this varies between different hardware platforms.
Finally, we’ll look at some useful tricks and lesser known strategies to discover that sometimes what you’ve been taught doesn’t actually lead to the best results.
Dave Rowland is the CTO at Audio Squadron (owning brands such as Tracktion and Prism Sound), working primarily on the digital audio workstation, Waveform and the engine it runs on. Other projects over the years have included audio plugins and iOS audio applications utilising JUCE.
In academia, David has taught on several modules at the University of the West of England on programming for audio. David has a passion for modern C++ standards and their use to improve code safety and brevity, has spoken at the Meeting C++ conference and is a regular speaker at the Audio Developer Conference and related monthly meetup. Past presentations: https://github.com/drowaudio/presentations/