@@ -12,23 +12,30 @@ main = do
12
12
let s10 = S. fromList [1 .. 10 ] :: S. Seq Int
13
13
s100 = S. fromList [1 .. 100 ] :: S. Seq Int
14
14
s1000 = S. fromList [1 .. 1000 ] :: S. Seq Int
15
- rnf [s10, s100, s1000] `seq` return ()
15
+ s10000 = S. fromList [1 .. 10000 ] :: S. Seq Int
16
+ rnf [s10, s100, s1000, s10000] `seq` return ()
16
17
let g = mkStdGen 1
17
18
let rlist n = map (`mod` (n+ 1 )) (take 10000 (randoms g)) :: [Int ]
18
19
r10 = rlist 10
19
20
r100 = rlist 100
20
21
r1000 = rlist 1000
21
- rnf [r10, r100, r1000] `seq` return ()
22
+ r10000 = rlist 10000
23
+ rnf [r10, r100, r1000, r10000] `seq` return ()
24
+ let u10 = S. replicate 10 () :: S. Seq ()
25
+ u100 = S. replicate 100 () :: S. Seq ()
26
+ u1000 = S. replicate 1000 () :: S. Seq ()
27
+ u10000 = S. replicate 10000 () :: S. Seq ()
28
+ rnf [u10, u100, u1000, u10000] `seq` return ()
22
29
defaultMain
23
30
[ bgroup " splitAt/append"
24
31
[ bench " 10" $ nf (shuffle r10) s10
25
32
, bench " 100" $ nf (shuffle r100) s100
26
33
, bench " 1000" $ nf (shuffle r1000) s1000
27
34
]
28
35
, bgroup " zip"
29
- [ bench " ix10000/5000" $ nf (\ (xs,ys) -> S. zip xs ys `S.index` 5000 ) (S. replicate 10000 () , S. fromList [ 1 .. 10000 :: Int ] )
30
- , bench " nf150 " $ nf (uncurry S. zip ) (S. fromList [ 1 .. 150 :: Int ], S.replicate 150 () )
31
- , bench " nf10000" $ nf (uncurry S. zip ) (S. fromList [ 1 .. 10000 :: Int ], S.replicate 10000 () )
36
+ [ bench " ix10000/5000" $ nf (\ (xs,ys) -> S. zip xs ys `S.index` 5000 ) (s10000, u10000 )
37
+ , bench " nf100 " $ nf (uncurry S. zip ) (s100, u100 )
38
+ , bench " nf10000" $ nf (uncurry S. zip ) (s10000, u10000 )
32
39
] ]
33
40
34
41
-- splitAt+append: repeatedly cut the sequence at a random point
0 commit comments