Understanding And Improving Graph Algorithm Performance