You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For some reason using a hashmap instead of an intmap causes a memory leak that slows down the solver, consider:
type Cache a b = Map.HashMap (StableName a) b
type ACache = Cache IL (V :/\ IL)
instance (Monad m, MonadIO m, MonadLogger m) =>
Cacheable (SolverT m) IL (V :/\ IL) where
memo !a go = do acc <- readCache accCache
!i <- liftIO $ makeStableName a
case Map.lookup i acc of
Just b -> do logInProducerWith "Acc Cache Hit on " a
succAccCacheHits
return b
Nothing -> do !b <- go
logInProducerWith "Acc Cache miss on " a
updateCache accCache $! Map.insert i b
return b
just this causes a memory leak and I cannot find out why or where. Using an IntMap this leak goes away suggesting it is in the keys:
type Cache a = IMap.IntMap a
type ACache = Cache (V :/\ IL)
instance (Monad m, MonadIO m, MonadLogger m) =>
Cacheable (SolverT m) IL (V :/\ IL) where
memo !a go = do acc <- readCache accCache
!i <- liftIO $ hashStableName <$> makeStableName a
case IMap.lookup i acc of
Just b -> do logInProducerWith "Acc Cache Hit on " a
succAccCacheHits
return b
Nothing -> do !b <- go
logInProducerWith "Acc Cache miss on " a
updateCache accCache $! IMap.insert i b
return b
This is especially weird because the hashable instance is essentially the exact same thing! (hashing just calls out the hashStableName:
instance Hashable (StableName a) where
hash = hashStableName
hashWithSalt = defaultHashWithSalt
The text was updated successfully, but these errors were encountered:
For some reason using a hashmap instead of an intmap causes a memory leak that slows down the solver, consider:
just this causes a memory leak and I cannot find out why or where. Using an
IntMap
this leak goes away suggesting it is in the keys:This is especially weird because the hashable instance is essentially the exact same thing! (hashing just calls out the
hashStableName
:The text was updated successfully, but these errors were encountered: