
2012/2/23 Maxime Henrion
According to criterion, the performance of the old generic-deepseq code was 6 to 7 times worse than that of the deepseq package. After switching the class function to rnf, it got on par, if not better than the deepseq package. I'm saying "if not", because I've observed contradicting results from criterion, when I ran benchmarks for both packages at once, and when I ran those separately. When running both at once, generic-deepseq is slower than deepseq, except for the test with the bigger list (see report-both.html). When ran separately, generic-deepseq is consistantly faster (see report-deepseq.html and report-gdeepseq.html). The criterion benchmark can be found on the bitbucket repo at http://mu.org/~mux/report-deepseq.html.
When running criterion benchmarks use the -g flag to prevent benchmarks from interfering with each other due to GC. Also, set a high initial heap size (e.g. -H1G) so the benchmarks that run first don't have to pay the price of GHC growing the heap. -- Johan