2012-12-14 10 views
7

seeing EKG in 24 days of Hackage'dan sonra, programlarımdan birinde kullanmayı denedim, ancak bellek ayırımımdan hiçbirini göstermiyordu.Neden EKG, ayrılmış belleğimi göstermiyor?

{-# 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" 

programı ince

% ghc --make Temp.hs -rtsopts && ./Temp +RTS -K32mM -RTS 
00000400 
00001000 
00002400 
... 

çalışır Ama EKG benim bellek kullanımını tespit edilecek gibi görünmüyor:

Yani sadece bellek içine çeken bir örnek program ile tekrar denedim tüm

EKG stats

Neyi yanlış yapıyorum?

cevap

11

Sen toplama istatistikler için -T veya -t veya -S veya -sRTS option kullanmak örneğin gerekir:

[orada belgelerinde] (
ghc --make Temp.hs -rtsopts && ./Temp +RTS -T -K32mM -RTS 
+1

http://hackage.haskell.org/packages/archive/ ekg/0.3.1.2/doc/html/Sistem-Uzak-Monitoring.html # g: 1), doh. – rampion

İlgili konular