我有一个程序,我正在运行类似
的程序stack exec -- foo +RTS -A256M -H256M -M1G -S -RTS
-S
标志会导致如下所示的行打印出来
208797032 75072552 114619448 0.356 0.028 12.876 16.122 0 0 (Gen: 1)
这显然意味着RTS认为该程序的实时字节使用率约为100MB
。但是,htop
报告该程序与常驻内存的1.4GB
(!)挂钩。
首先,驻留内存如何超过我设置的最大堆大小?
其次,造成这种差异的原因是什么?如何保持常驻内存使用量下降?