Add caching to `DataExpressionSource`
Closed this issue · 0 comments
jvdb commented
Generally we try very hard to avoid mutable state in Metal, but in the case of DataExpressionSource
this causes serious performance problems. IO laziness when parsing data with a DataExpressionSource
means that for evaluating every Def
or Until
, the entire expression is evaluated. This has led to a slowdown of a factor of more than 100x in a benchmark.
So in this specific case, it makes sense for DataExpressionSource
to cache its result.