Haskell / GHC能否自行报告其GC统计数据?

时间:2015-05-11 05:51:54

标签: haskell ghc

我认为让服务器自我报告其内存使用情况会很方便。

我已阅读手册中有关memory profiling的部分,但有一些缺点:

  • 首先,这似乎只给出了验尸统计数据。
  • 启用性能分析会产生开销。
  • 我真的不需要那么多细节。

这就是我的问题,如何在GHC编译的正在运行的程序中跟踪不同的内存集?

2 个答案:

答案 0 :(得分:10)

如果您将ekg集成到服务器中,则可以通过HTTP访问有关运行时的精美图表和统计信息,甚至是您自己的自定义指标:

enter image description here

(图片从Oliver Charles’ blogpost on ekg链接)

答案 1 :(得分:8)

GHC特定模块GHC.Stats提供了一个函数getGCStats,它返回(IO)各种GC统计信息:

getGCStats :: IO GCStats
     

检索上一次的垃圾收集和内存统计信息   垃圾收集。如果你想要你的统计数据最近   可能,首先运行performGC