[QuickCheck] [PATCH] Fix a performance issue
    Simon Hengel 
    sol at typeful.net
       
    Sun Nov 18 14:09:04 GMT 2012
    
    
  
Hi,
here are the numbers.
Without producing any output:
    -- file main.hs
    main = replicateM_ 100 . (quickCheckWith stdArgs {chatty = False}) $
      \x y -> x /= y ==> x /= (y :: Int)
    $ ghc main.hs && time ./main
    real    0m0.851s
    user    0m0.844s
    sys     0m0.008s
QuickCheck's current default behavior:
    -- file main.hs
    main = replicateM_ 100 . quickCheck $
      \x y -> x /= y ==> x /= (y :: Int)
    $ ghc main.hs && time ./main
    real    0m6.650s
    user    0m1.940s
    sys     0m2.404s
QuickCheck's default behavior with my patch:
    real    0m1.697s
    user    0m1.088s
    sys     0m0.132s
I hope it is obvious how to interpret this.
The solution was pointed out by parcs in a comment to GHC #7418 [1].
Cheers,
Simon
[1] http://hackage.haskell.org/trac/ghc/ticket/7418#comment:1
    
    
More information about the QuickCheck
mailing list