[commit: nofib] master: Add notes about nofib (4b19571)

Simon Peyton Jones simonpj at microsoft.com
Wed Jan 16 18:17:32 CET 2013


Repository : ssh://darcs.haskell.org//srv/darcs/nofib

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/4b19571102acd6fbccfb13b91f1dd87ae50e1813

>---------------------------------------------------------------

commit 4b19571102acd6fbccfb13b91f1dd87ae50e1813
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Wed Jan 16 17:13:04 2013 +0000

    Add notes about nofib

>---------------------------------------------------------------

 Simon-nofib-notes |   35 +++++++++++++++++++++++++++++++----
 1 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/Simon-nofib-notes b/Simon-nofib-notes
index d8568d2..2b4654c 100644
--- a/Simon-nofib-notes
+++ b/Simon-nofib-notes
@@ -13,6 +13,11 @@ whereas it didn't before.  So allocations go up a bit.
 	Imaginary suite
 ---------------------------------------
 
+integrate
+~~~~~~~~~
+integrate1D is strict in its second argument 'u', but it also passes 'u' to
+function 'f'.  Hence it now does some reboxing, which pushes up allocation
+slightly.
 
 gen_regexps
 ~~~~~~~~~~~
@@ -215,6 +220,11 @@ Lambda
 This program shows the cost of the non-eta-expanded lambdas that arise from
 a state monad.  
 
+mandel2
+~~~~~~~
+check_perim's several calls to point_colour lead to opportunities for CSE
+which may be more or less well taken.
+
 Mandel
 ~~~~~~
 Relies heavily on having a specialised version of Complex.magnitude
@@ -339,19 +349,36 @@ Sphere also does 60,000 calls to hPutStr, so I/O plays a major role.  Currently
 this I/O does a *lot* of allocation, much of it since the adddition of thread-safety.
 
 
-Treejoin
+treejoin
 ~~~~~~~~
-Does a lot of IO.readFile.
+Does a lot of IO.readFile.  In GHC.IO.Encoding.UTF8 the demand
+analyser sees a strict function with type
+ a_s1gj :: GHC.IO.Buffer.Buffer GHC.Word.Word8
+     	-> GHC.IO.Buffer.Buffer GHC.Types.Char
+     	-> GHC.Prim.State# GHC.Prim.RealWorld
+     	-> (# GHC.Prim.State# GHC.Prim.RealWorld,
+     	      (GHC.IO.Encoding.Types.CodingProgress,
+     	       GHC.IO.Buffer.Buffer GHC.Word.Word8,
+     	       GHC.IO.Buffer.Buffer GHC.Types.Char) #)
+Unboxing both Buffer arguments makes a HUGE difference (halves
+allocation); but that makes the worker function have 12 arguments.  A
+good reason for unboxing even if the worker gets a lot of args.
+
+sorting
+~~~~~~~
+Same issue with GHC.IO.Encoding.UTF8 as treejoin
+
 
 ---------------------------------------
 	Real suite
 ---------------------------------------
 
-
+gg
+~~
+Same issue with GHC.IO.Encoding.UTF8 as treejoin
 	
 Maillist
 ~~~~~~~~
-
 Uses appendFile repeatedly rather than opening the output file once,
 which leads to numerous file opens/closes.  Allocations will rise with
 the new I/O subsystem in 5.02 because the I/O buffer will be





More information about the ghc-commits mailing list