Using JProbe, I noticed that my application was repeatedly compiling the same JudoScript scripts. I added a cache for compiled JudoScript scripts which reduced the calls to ParserHelper.parse():

Run Calls Cumulative Time Cumulative Objects Percent Cumulative Objects
1 1,300 5.5% 13.6% 1,116,603
2 13 0.3% 0.3% 23,456

Not a bad first optimization for our first use of the JProbe profiler.