[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