Source: https://www.erts2018.org/uploads/program/ERTS_2018_paper_63.pdf