Description
Nightly testing has shown that commit 9fb67399ab99183bb7c45e57b35d4bd8dfaa83ca "Added Evaluatable[T], EvalCache, and DISequence, DIChoice." caused a large performance decrease, with the example PCAP parsing dropping by half. After some profiling, it looks like part of the decrease is due to the EvalCache and putting evaluated expressions in the cache. Removing the caching (so always reevaluating expressions) causes a increase in performance, but not quite to that of pre-Evaluatables. Putting a println when we get a cache hit revealed that we are getting cache hits, but perhaps the cost of caching is less than the cost of just evaluating in most cases. Perhaps we need a way to determine which expression functions will be expensive and only cache those.