[commit: packages/containers] changelog-foldtree, cleaned_bugfix394, develop-0.6, develop-0.6-questionable, master, merge-doc-target, merge-fixes-5.9, merge-restrict-fix-5.8, revert-184-generic, revert-408-bugfix_394: Use pre-evaluated sequences in benchmarks. (999851e)

git at git.haskell.org git at git.haskell.org
Mon Apr 17 21:35:52 UTC 2017


Repository : ssh://git@git.haskell.org/containers

On branches: changelog-foldtree,cleaned_bugfix394,develop-0.6,develop-0.6-questionable,master,merge-doc-target,merge-fixes-5.9,merge-restrict-fix-5.8,revert-184-generic,revert-408-bugfix_394
Link       : http://git.haskell.org/packages/containers.git/commitdiff/999851e33acde2db08b06cf8d0331f37bbeb3c0b

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

commit 999851e33acde2db08b06cf8d0331f37bbeb3c0b
Author: Milan Straka <fox at ucw.cz>
Date:   Sun Dec 14 16:26:42 2014 +0100

    Use pre-evaluated sequences in benchmarks.


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

999851e33acde2db08b06cf8d0331f37bbeb3c0b
 benchmarks/Sequence.hs | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/benchmarks/Sequence.hs b/benchmarks/Sequence.hs
index ccaca6c..8fd1fcf 100644
--- a/benchmarks/Sequence.hs
+++ b/benchmarks/Sequence.hs
@@ -12,13 +12,20 @@ main = do
     let s10 = S.fromList [1..10] :: S.Seq Int
         s100 = S.fromList [1..100] :: S.Seq Int
         s1000 = S.fromList [1..1000] :: S.Seq Int
-    rnf [s10, s100, s1000] `seq` return ()
+        s10000 = S.fromList [1..10000] :: S.Seq Int
+    rnf [s10, s100, s1000, s10000] `seq` return ()
     let g = mkStdGen 1
     let rlist n = map (`mod` (n+1)) (take 10000 (randoms g)) :: [Int]
         r10 = rlist 10
         r100 = rlist 100
         r1000 = rlist 1000
-    rnf [r10, r100, r1000] `seq` return ()
+        r10000 = rlist 10000
+    rnf [r10, r100, r1000, r10000] `seq` return ()
+    let u10 = S.replicate 10 () :: S.Seq ()
+        u100 = S.replicate 100 () :: S.Seq ()
+        u1000 = S.replicate 1000 () :: S.Seq ()
+        u10000 = S.replicate 10000 () :: S.Seq ()
+    rnf [u10, u100, u1000, u10000] `seq` return ()
     defaultMain
       [ bgroup "splitAt/append"
          [ bench "10" $ nf (shuffle r10) s10
@@ -26,9 +33,9 @@ main = do
          , bench "1000" $ nf (shuffle r1000) s1000
          ]
       , bgroup "zip"
-         [ bench "ix10000/5000" $ nf (\(xs,ys) -> S.zip xs ys `S.index` 5000) (S.replicate 10000 (), S.fromList [1..10000::Int])
-         , bench "nf150" $ nf (uncurry S.zip) (S.fromList [1..150::Int], S.replicate 150 ())
-         , bench "nf10000" $ nf (uncurry S.zip) (S.fromList [1..10000::Int], S.replicate 10000 ())
+         [ bench "ix10000/5000" $ nf (\(xs,ys) -> S.zip xs ys `S.index` 5000) (s10000, u10000)
+         , bench "nf100" $ nf (uncurry S.zip) (s100, u100)
+         , bench "nf10000" $ nf (uncurry S.zip) (s10000, u10000)
          ] ]
 
 -- splitAt+append: repeatedly cut the sequence at a random point



More information about the ghc-commits mailing list