#7418: Writing to stderr is 7x slower than writing to stdout
------------------------------------+---------------------------------------
Reporter:  SimonHengel              |          Owner:                
    Type:  bug                      |         Status:  new           
Priority:  normal                   |      Component:  Runtime System
 Version:  7.6.1                    |       Keywords:                
      Os:  Linux                    |   Architecture:  x86_64 (amd64)
 Failure:  Runtime performance bug  |      Blockedby:                
Blocking:                           |        Related:                
------------------------------------+---------------------------------------
 For some reason printing to stderr is significantly slower than printing
 to stdout.

 I came across this because I realized that simple !QuickCheck properties
 are unnecessarily slow.  !QuickCheck writes a lot of output to stderr,
 overriding old output with {{{\b}}}.

 Here are some stats:

 '''GHC 7.6.1 / xterm / stdout:'''
 {{{
 main = sequence_ . replicate 10000 $ hPutStr stdout "foobarbaz" >> hFlush
 stdout
 }}}
 {{{
 $ ghc main.hs && time ./main
 ...
 real    0m0.070s
 user    0m0.016s
 sys     0m0.032s
 }}}

 '''GHC 7.6.1 / xterm / stderr:'''
 {{{
 main = sequence_ . replicate 10000 $ hPutStr stderr "foobarbaz" >> hFlush
 stderr
 }}}
 {{{
 $ ghc main.hs && time ./main
 ...
 real    0m0.538s
 user    0m0.112s
 sys     0m0.228s
 }}}

 If I do the same thing in C, then there is no performance difference.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7418>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to