首页 > 解决方案 > 当 Haskell 分析图根据操作系统不断增长时,为什么它会指示内存减少?

问题描述

不幸的是,我的内存泄漏很可能是由于我使用了 Conduit(请参阅下面的评论)。我第一次尝试分析,运行 exe 大约 30 分钟(可能更长)。在此期间,据报道top,内存使用稳步攀升至约 8 GB。

我用 取消了执行Ctrl-C,并收到了这条消息:

 207,273,173,680 bytes allocated in the heap
3,249,532,925,152 bytes copied during GC
   4,354,654,920 bytes maximum residency (1647 sample(s))
      43,810,104 bytes maximum slop
            4152 MB total memory in use (0 MB lost due to fragmentation)

                                     Tot time (elapsed)  Avg pause  Max pause
  Gen  0     113916 colls,     0 par   26.122s  25.869s     0.0002s    0.0084s
  Gen  1      1647 colls,     0 par   4052.216s  4015.805s     2.4383s    7.0176s

  TASKS: 5 (1 bound, 4 peak workers (4 total), using -N1)

  SPARKS: 0(0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

  INIT    time    0.007s  (  0.008s elapsed)
  MUT     time    0.000s  (-1697.639s elapsed)
  GC      time  2194.239s  (2175.089s elapsed)
  RP      time    0.000s  (  0.000s elapsed)
  PROF    time  1884.099s  (1866.585s elapsed)
  EXIT    time  1884.099s  (1866.586s elapsed)
  Total   time  4246.975s  (4210.628s elapsed)

  Alloc rate    0 bytes per MUT second

  Productivity -40.4% of total user, -40.3% of total elapsed

生成的结果图hp2ps -e8in -c FarmDataServer.exe.hp仅显示大约 30 分钟,并且实际上显示出大幅下降的趋势……除非该图未显示累积内存状态,而仅显示特定时间窗口中的分配?

在此处输入图像描述

标签: haskellmemory-leaksmemory-profiling

解决方案


推荐阅读