相关疑难解决方法(0)

如何找出GHC的数据类型的内存表示?

最近,诸如计算Hashmap的大小之类的博客条目解释了如何推断常用容器类型的空间复杂性.现在我面临的问题是如何实际"看到"我的GHC版本选择的内存布局(取决于编译标志和目标体系结构),用于奇怪的数据类型(构造函数),例如

data BitVec257 = BitVec257 {-# UNPACK #-} !Word64
                           {-# UNPACK #-} !Word64
                           {-# UNPACK #-} !Bool
                           {-# UNPACK #-} !Word64
                           {-# UNPACK #-} !Word64

data BitVec514 = BitVec514 {-# UNPACK #-} !BitVec257
                           {-# UNPACK #-} !BitVec257
Run Code Online (Sandbox Code Playgroud)

在C中有sizeofoffsetof运算符,它允许我"看到"为C字段选择的大小和对齐方式struct.

我试着看看GHC Core希望在那里找到一些提示,但我不知道该找什么.有人能指出我正确的方向吗?

haskell ghc

15
推荐指数
2
解决办法
1604
查看次数

标签 统计

ghc ×1

haskell ×1