== Memory and CPU Usage Profiling == Much of the information on this page was gleaned from [http://book.realworldhaskell.org/read/profiling-and-optimization.html Chapter 25] of [http://book.realworldhaskell.org/read/ Real World Haskell]. It probably advisable to keep a separate branch specifically set up for profiling. That branch can just forked off a local `ddc-head` branch using: {{{ darcs branch ddc-head ddc-profiling }}} After changing directory into the `ddc-profiling` branch I create a custom config in that branch by doing: {{{ echo "BUILDFLAVOUR = devel_prof" > make/config-override.deps }}} The compiler can now be built using the `make` command. Once we have the profiling version of the compiler built is a matter of running it on something appropriate. I usually choose the test program in `test/90-Programs/Rover` and run it as: {{{ make cleanWar bin/ddc +RTS -hc -p -K100M -RTS --make test/90-Programs/Rover/Main.ds }}} This generates a profile output file named `ddc.hp` which can be converted into a profile graph using: {{{ hp2ps -c ddc.hp }}} to generate the Postscript file `ddc.ps`.