Nach seeing EKG in 24 days of Hackage, habe ich versucht, es in einem meiner Programme zu verwenden, aber es zeigte keine meiner Speicherzuweisung.Warum zeigt EKG meinen zugewiesenen Speicher nicht an?
Also versuchte ich es noch einmal mit einem Beispielprogramm, das Speicher saugt gerade:
{-# 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"
Das Programm läuft gut
% ghc --make Temp.hs -rtsopts && ./Temp +RTS -K32mM -RTS
00000400
00001000
00002400
...
Aber EKG scheint nicht meine Speichernutzung zu Erkennen an alle
Was mache ich falsch?
[direkt in der Dokumentation] (http://hackage.haskell.org/packages/archive/ ekg/0.3.1.2/doc/html/System-Fernüberwachung.html # g: 1), doh. – rampion