Source: http://www.apses.org/IMG/pdf/chap0_intro_portable_vprof.pdf