首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么EKG没有显示我分配的内存?

为什么EKG没有显示我分配的内存?
EN

Stack Overflow用户
提问于 2012-12-15 07:16:40
回答 1查看 305关注 0票数 7

seeing EKG in 24 days of Hackage之后,我尝试在我的一个程序中使用它,但它没有显示我的任何内存分配。

因此,我用一个仅占用内存的示例程序再次尝试:

代码语言:javascript
复制
{-# LANGUAGE OverloadedStrings #-}
module Main where

import System.Remote.Monitoring (forkServer)
import Control.Applicative ((<$>))
import Control.Monad (foldM, forM_)
import Control.Monad.Primitive (PrimMonad, PrimState)
import Data.Vector.Mutable (MVector, replicate, read, write, length)
import Prelude hiding (read, length, replicate)
import Text.Printf

accumBy :: (Functor m, PrimMonad m) => (a -> a -> a) -> MVector (PrimState m) a -> m a
accumBy f v = do
  a <- read v 0
  foldM (\a i -> do
    a' <- f a <$> read v i
    write v i a'
    return a'
    ) a [1 .. length v - 1]

main :: IO ()
main = do
  forkServer "localhost" 8000
  forM_ [1..] $ \n -> do
    v <- replicate (n*1024) (n :: Int)
    accumBy (+) v >>= printf "%08x\n"

程序运行得很好

代码语言:javascript
复制
% ghc --make Temp.hs -rtsopts && ./Temp +RTS -K32mM -RTS
00000400
00001000
00002400
...

但是EKG似乎根本没有检测到我的内存使用情况

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-15 07:38:54

您需要使用-T-t-S-s RTS option来收集统计数据,例如:

代码语言:javascript
复制
ghc --make Temp.hs -rtsopts && ./Temp +RTS -T -K32mM -RTS
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13887575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档