[commit: packages/containers] cleaned_bugfix394, master, merge-doc-target, merge-fixes-5.9, merge-restrict-fix-5.8, revert-408-bugfix_394: Make >< build its result eagerly (#277) (068c970)

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


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

On branches: cleaned_bugfix394,master,merge-doc-target,merge-fixes-5.9,merge-restrict-fix-5.8,revert-408-bugfix_394
Link       : http://git.haskell.org/packages/containers.git/commitdiff/068c970370ad467fc042423f377a842866ff5e57

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

commit 068c970370ad467fc042423f377a842866ff5e57
Author: David Feuer <David.Feuer at gmail.com>
Date:   Tue May 31 13:55:37 2016 -0400

    Make >< build its result eagerly (#277)
    
    Previously, `><` only built the top of the tree,
    leaving the rest suspended lazily. Now it rebuilds
    eagerly, using the full time allocated to it. The
    improvements on the `splitAt/append` benchmark are
    modest but meaningful. More importantly, it should no
    longer be possible to use `><` to produce large chains
    of thunks.
    
    Fixes #274
    
    Old: benchmarking splitAt/append/10
    time                 1.056 ms   (1.050 ms .. 1.065 ms)
                         0.995 R²   (0.983 R² .. 1.000 R²)
    mean                 1.073 ms   (1.057 ms .. 1.147 ms)
    std dev              97.06 μs   (9.638 μs .. 221.7 μs)
    variance introduced by outliers: 68% (severely inflated)
    
    New: benchmarking splitAt/append/10
    time                 987.8 μs   (982.7 μs .. 992.3 μs)
                         1.000 R²   (0.999 R² .. 1.000 R²)
    mean                 995.5 μs   (994.6 μs .. 997.2 μs)
    std dev              3.845 μs   (1.988 μs .. 6.390 μs)
    
    Old: benchmarking splitAt/append/100
    time                 8.028 ms   (8.014 ms .. 8.046 ms)
                         1.000 R²   (1.000 R² .. 1.000 R²)
    mean                 8.041 ms   (8.029 ms .. 8.075 ms)
    std dev              51.02 μs   (16.07 μs .. 94.69 μs)
    
    New: benchmarking splitAt/append/100
    time                 7.382 ms   (7.346 ms .. 7.427 ms)
                         1.000 R²   (0.999 R² .. 1.000 R²)
    mean                 7.374 ms   (7.357 ms .. 7.430 ms)
    std dev              75.55 μs   (41.64 μs .. 135.4 μs)
    
    Old: benchmarking splitAt/append/1000
    time                 15.30 ms   (15.20 ms .. 15.41 ms)
                         1.000 R²   (1.000 R² .. 1.000 R²)
    mean                 15.32 ms   (15.26 ms .. 15.45 ms)
    std dev              190.0 μs   (89.60 μs .. 351.1 μs)
    
    New: benchmarking splitAt/append/1000
    time                 13.68 ms   (13.61 ms .. 13.77 ms)
                         1.000 R²   (1.000 R² .. 1.000 R²)
    mean                 13.64 ms   (13.59 ms .. 13.69 ms)
    std dev              118.9 μs   (89.45 μs .. 154.4 μs)


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

068c970370ad467fc042423f377a842866ff5e57
 Data/Sequence.hs | 63 +++++++++++++++++++++++++++++---------------------------
 1 file changed, 33 insertions(+), 30 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 068c970370ad467fc042423f377a842866ff5e57


More information about the ghc-commits mailing list