I’m evaluating the trade-offs and efficient use of memoization with lengthy vectors, particularly in optimisation. Suppose a vector input to an expensive function has many Float64 elements, say, 100,000. When this function is memoized:
-
Is the whole vector stored or just some ID/ hashcode?
-
Is the equality with an incoming vector tested by reference or by value? Does this depend on the number of elements?
-
How can some of the memoized keys/values be deleted programmatically (e.g., by popping a stack)?
-
How would the above apply if the input vector was the optimisation variable in JuMP?
Many thanks!