# The Glasgow Haskell Compiler ## Some GHC Flags -v verbose mode -O2 level 2 optimizations -rtsopts allow +RTS flags -prof enable basic time and allocation profiling -auto-all cost centers on all top level functions (you can also add them via the SCC pragma) -fprof-auto replaced -auto-all -caf-all generate data for CAFs (constant applicative forms) -fprof-cafs replaced -caf-all -fforce-recomp force recompilation -threaded Use threaed runtime -eventlog enables +RTS -l flag -Wall -Werror -no-hs-main supress linking main module Notes: you will obtain the profiling versions of dependancies via: stack install --profile [libraryname] ## Some +RTS flags -K set stack limit -s statistic reporting -p profiling -hc extract heap profile -hy allocation by type -hd allocation by constructor -ix x is sampling frequency in seconds. e.g. 0.01) -Nx x is number of cores to utilize -l emit log file (can be used threadscope) -ddump-simpl generate core Note: render the heap profile as graph with: hp2ps -e8in -c file.hp show eventlog with: threadscope file.eventlog