digitalRead/digitalWrite take a few microseconds to run, direct port manipulation is a lot faster than that.