All,
There's not much code, and (sadly) not much documentation, but what's
there needs some performance love.
https://github.com/richard-lyman/amotoen
Notes:
- jvisualvm doesn't like me this week so help there might be enough
(I can't see anything other than clojure classes - I'd love to only
see my code)
- reifying IPosition to a faster implementation seems like it has potential
- I've used *warn-on-reflection* and fixed the single spot it mentioned
- I'm not convinced that the code used in 'either' is the best, and
I'm a bit confused about why it's better than the two other
commented-out forms
- Switching IPosition grammar-grammar away from a character-based
approach is an option, just one I'd like to avoid
It's a leiningen project, with 'lein test' being what I run to check
performance. The grammar parses itself 40 times and prints out how
long that took. The self-check method might be a good place to start
if walking through the code. Ignore the grammar samples, they haven't
been updated in a while. Basically the two 'core' files, under src and
test are all I'm working with right now.
Is it already as 'fast' as it can be??
-Rich