Source: https://people.csail.mit.edu/rinard/paper/onward19.pdf