When reading the document I'm curious why the @Memoized have these 2nd parameter. What is the use case? When is the relation between the garbage collection and cache replace behavior?
int protectedCacheSize: Number of cached return values to protect from garbage collection.