我正在创建一个实现某种缓存的程序。我需要尽可能多地使用内存,为此我需要做两件事:
我需要一个独立于平台的解决方案(Linux,Windows等)。
使用这两条信息,我将减少缓存的大小或放大缓存。 如何在Haskell中获取此信息?有没有可以提供这些信息的软件包?
答案 0 :(得分:3)
我无法立即看到如何移植。
然而,GHC确实有弱指针"。 (请参阅System.Mem.Weak
。)如果您创建项目并通过弱指针(仅限)挂起它们,那么垃圾收集器将在物理内存不足时自动开始删除项目。< / p>
(不幸的是,这并不能让你决定首先要删除哪些项目 - 例如,那些最便宜重新创建的项目或那些最少使用的项目或者东西。)