You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求替代ghc-vis的Haskell堆状态查看工具(支持可视化/文本检查)

Haskell堆可视化与内存共享细节检查工具求助

我对Haskell堆可视化相关内容很感兴趣,但一直没法用ghc-vis工具,感觉它已经过时了。如果这个工具还能在现代环境下编译运行,麻烦提供相关方法;另外也想问问有没有其他支持堆可视化,或者至少能检查内存共享细节的工具?

比如我在ghci里运行了这段代码:

λ> data Person = Person { name :: String,
                          surname :: String,
                          age :: Int
                        } deriving Show

λ> baron = Person { name = "Cosimo",
                    surname = "Piovasco di Rondò",
                    age = 12 }
λ> oldBaron = baron { age = 65 }
λ> brother = baron { name = "Biagio" }
λ> baron
Person {name = "Cosimo", surname = "Piovasco di Rond\242", age = 12}
λ> oldBaron 
Person {name = "Cosimo", surname = "Piovasco di Rond\242", age = 65}
λ> brother 
Person {name = "Biagio", surname = "Piovasco di Rond\242", age = 12}

我的理解是:

  • 计算baron时会完成大部分内存分配;
  • 计算oldBaron时,仅创建必要指针,除age字段需要重新分配Int值外,其余部分和baron共享内存;
  • 计算brother时同理,只是重新指向了name字段;
  • 按照相关视频内容,所有计算完成后,三个Person实例里的6个'o'实际指向同一个内存实例,其他字符也是如此。

有没有工具能直观展示这些内存共享的细节?我知道ghci里的:sprint命令可以查看惰性求值状态,但它没法完整展示堆共享的细节,希望找到更合适的工具。

内容的提问来源于stack exchange,提问作者Enlico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 23:49:58