# # Some GHC flags explained # # -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) # -caf-all generate data for CAFs (constant applicative forms) # t # -fforce-recomp force recompilation # # Notes: you will obtain the profiling versions of dependancies via: # stack install --profile [libraryname] # # -fprof-auto replaced -auto-all # -fprof-cafs replaced -caf-all # build-prof: stack ghc --profile -- -rtsopts -prof -fprof-auto -fprof-cafs -O2 base64.hs # # Some +RTS flags # # -p profiling # -K set stack limit # -hc extract heap profile # -hy allocation by type # -hd allocation by constructor # -iN sampling frequency in seconds. e.g. -i0.01 # -ddump-simpl generate core version # # Note: render the heap profile as graph with: hp2ps -e8in -c file.hp # run-prof: cat random.bin | ./base64 +RTS -p -K100M > /dev/null test-mini-hask: #stack ghc -- -rtsopts -prof -fprof-auto -fprof-cafs -O mini.hs -o mini_hask_exe stack ghc -- -O mini.hs -o mini_hask_exe test-mini-c: gcc -O3 mini.c -o mini_c_exe