Closed djspiewak closed 7 years ago
I've addressed all of the action items here. Performance has increased roughly 8x since the initial profiling, but it's still more than an order of magnitude slower than gll-combinators. Closing this for now to make way for other tickets.
JFR profiles (from my laptop) are here: https://www.dropbox.com/s/38dot4nryuolhwx/parseback-jfr.tar.bz2?dl=1
HashMap
is our biggest overhead spot. No surprise there. I always planned on improving this, and the lion's share of the improvements in the PLDI 2016 paper came in this area.hashCode
of aVector
is also something we spend significant time on, so we could probably get an easy win by swappingisNullable
to useParserId
immutable.HashSet
too, and a fair bit of itThat's probably enough to start with. Note that these are just the results from the
ArithmeticBenchmark
, which very clearly (in the results) biases left-recursion and nulling out trailing lines. A more balanced grammar would produce better broad-spectrum results. Additionally, I didn't have heap profiling enabled, because derp. Those results should also be quite interesting, though we weren't spending that much time in GC (and it was quite constant).