I was able to get parsing time down to about 1/3 of the original time by using callgrind+kcachegrind. There's definitely more improvements that can be made here, but I'm gonna be happy with this for now. :^)