【发布时间】:2013-12-11 13:42:23
【问题描述】:
考虑以下利用存在的数据模型:
data Node a = Node a (Map TypeRep AnyNode)
data AnyNode = forall a. Show a => AnyNode a
标准类型have been explained previously的内存占用规则。现在,存在类型的规则是什么,比如AnyNode?
是否有任何优化技术,例如使用unsafeCoerce 的一些变通方法可以逃避存在声明?我问这个是因为类似于Node 的类型将被放置在一个高度内存密集型库的成本中心,所以内存占用就是全部,这就是为什么最肮脏的黑客受到欢迎的原因。
【问题讨论】:
-
我认为您已经考虑过旧的“如果您只需要
Show,那么为什么不首先存储show x?” -
@leftaroundabout 以上只是一个例子。我的实际案例涉及可变数据结构。
标签: haskell memory optimization