pydstool icon indicating copy to clipboard operation
pydstool copied to clipboard

Significant Rhs() call inefficiency via non-cacheing of symbolMapClass lookups

Open robclewley opened this issue 8 years ago • 0 comments

parseUtils.py symbolMapClass does not cache results when it uses parserObject to check unrecognized string inputs. It could update lookupDict with its result for much greater efficiency if being called repeatedly with the same unrecognized arguments. A use case of PyCont has indicated that continuation can be many times slower in v0.90 than it should be because of the overhead of always remapping parameter and variable name arguments through FScompatibleNames lookup during Rhs() calls.

This approach has the drawback of potentially growing the size of the dictionary without bound if repeatedly called with unique inputs. Ideally, the parameter and variable names should already be mapped by default using the identity mapping in FScompatibleNames if they don't use hierarchical '.' notation.

robclewley avatar Nov 24 '16 03:11 robclewley