[Haskell] Edison 1.2 and profiling
Robert Dockins
robdockins at fastmail.fm
Sun Jun 4 13:11:48 EDT 2006
On Jun 4, 2006, at 12:35 PM, Mario Blazevic wrote:
>
> The profiled version of the latest Edison library doesn't work for me.
>
> I got Edison 1.2 via darcs. I used the regular 'make system'
> command to
> build and install the regular (non-profiled) version of Edison. Then I
> went to edison-api and edison-core subdirectories, in turn, and
> executed
> the Cabal commands:
>
> runhaskell Setup.hs clean
> runhaskell Setup.hs configure --enable-library-profiling
> runhaskell Setup.hs build
> runhaskell Setup.hs install
>
>
> The library seems to be properly installed:
>
> $ ls -l /usr/local/lib/EdisonCore-1.2/ghc-6.4.2/
> total 9985
> drwxr-xr-x 3 root root 72 Jun 3 20:28 Data
> -rw-r--r-- 1 root root 1939264 Jun 4 12:08 HSEdisonCore-1.2.o
> -rw-r--r-- 1 root root 2932114 Jun 4 12:08 libHSEdisonCore-1.2.a
> -rw-r--r-- 1 root root 5339788 Jun 4 12:08
> libHSEdisonCore-1.2_p.a
>
> $ ls -l /usr/local/lib/EdisonCore-1.2/ghc-6.4.2/Data/Edison/
> Assoc/
> total 720
> -rw-r--r-- 1 root root 86508 Jun 4 12:08 AssocList.hi
> -rw-r--r-- 1 root root 86513 Jun 4 12:08 AssocList.p_hi
> -rw-r--r-- 1 root root 61267 Jun 4 12:08 Defaults.hi
> -rw-r--r-- 1 root root 61272 Jun 4 12:08 Defaults.p_hi
> -rw-r--r-- 1 root root 67740 Jun 4 12:08 PatriciaLoMap.hi
> -rw-r--r-- 1 root root 67745 Jun 4 12:08 PatriciaLoMap.p_hi
> -rw-r--r-- 1 root root 56208 Jun 4 12:08 StandardMap.hi
> -rw-r--r-- 1 root root 56213 Jun 4 12:08 StandardMap.p_hi
> -rw-r--r-- 1 root root 86239 Jun 4 12:08 TernaryTrie.hi
> -rw-r--r-- 1 root root 86244 Jun 4 12:08 TernaryTrie.p_hi
>
> I compile the profile version of my program using the following line:
>
> ghc -package text -package EdisonAPI -fglasgow-exts --make Main -o
> gens-prof -odir profiler -hidir profiler -prof -auto-all
>
> The ghc version is 6.4.2, by the way. When I run the compiled program,
> it keeps grabbing memory until it's killed by the system.
Enabling profiling can significantly change the space behavior of
programs. There may be some important optimizations that don't occur
in the presence of profiling, and the profiling data itself takes
some memory. I have to admit, I don't know a lot about GHC profiling
so I'm afraid I can't be of much help. If you can scale down the
problem size to do your profiling, that may keep it from being OOM'd
and let you get some useful data.
> The
> non-profiled version of the program runs perfectly well. In fact, the
> PatriciaLoMap from Edison seems to be about two to three times faster
> than Data.Map library for my purposes.
That's good to hear. What's the usage pattern?
> Lots of unions. So you might say
> that I don't need profiling any more, but still...
>
> Any ideas on what might have gone wrong?
Rob Dockins
Speak softly and drive a Sherman tank.
Laugh hard; it's a long way to the bank.
-- TMBG
More information about the Haskell
mailing list