
+1, thanks for your attention to detail Oleg.
Cheers,
George
On Sat, 5 Jun 2021 at 20:26, Fumiaki Kinoshita
+1, I think this is a strict improvement.
It also makes a good advertisement for the HasCallStack class.
2021年5月30日(日) 22:55 Oleg Grenrus
: I'm proposing to add HasCallStack constraint for partial functions in base package for functions in Data.List and Data.List.NonEmpty:
- head, tail, init, last, ... - foldr1, foldl1, maximum, minimum, ... - (!!)
---
The previous discussions started by Luo Chen can be found at https://gitlab.haskell.org/ghc/ghc/-/issues/17040 (from August 2019)
and libraries list from June 2019 https://mail.haskell.org/pipermail/libraries/2019-June/029652.html
---
My motivation comes from seeing GHCJS failing with "Prelude.!! negative index" exception and cabal-install with head of empty list.
---
In #17040 issue Ben Gamari comments [1]
In general, adding HasCallStack constraints on things like simple non-recursive functions like fromJust and head seems like a reasonable trade-off; these functions will essentially always inline and consequently the cost of the constraint will vanish.
Such patch is now available at https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5833
After accepting few changed test outputs, no further changes were needed.
---
Ben continues:
Adding HasCallStack constraints on typeclass-overloaded methods isn't as clear. After all, it's quite likely that these functions will be reached by dynamic dispatch which will become more expensive with the additional callstack argument.
I agree. Foldable.foldr1 may not be partial, e.g. it isn't for NonEmpty.
More correct approach would be to add Foldable1 [2] class to base, and in some distant future remove potentially partial members from Foldable.
Therefore my patch _does not change_ Foldable.
nofib may not be a very good test for this patch as it doesn't contain many uses of the affected functions
Indeed. These functions are hardly ever in tight performance critical code, thus I'm skeptical about they affecting a code written by performance aware people. Re-implementing `head` in a loop where it causes performance regression is trivial.
I have run `nofib` anyway. Results are at the end.
I think it would be a good idea to start with a minimal patch adding constraints to the simple cases. We should then verify that the patch doesn't affect the Core produced by typical use-cases (perhaps even adding tests such that these don't regress). Once we know that the simple cases are safe we can move on to the harder cases.
Such patch is now available at https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5833
---
Let me go through other comments in previous discussions, to have fuller overview.
---
Some people are in favour, e.g. - Simon Jakobi, https://mail.haskell.org/pipermail/libraries/2019-June/029655.html - Hécate, https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_355561
---
Richard [3] thinks that e.g. a year prior addition of HasCallStack to fromJust [4] is not a right thing.
I don't have any particular insight to how to do call stacks better -- and I am swayed by the argument that we need call stacks even in production -- but I don't think HasCallStack is the way. That was always meant as just a small hack!
This patch is indeed more pragmatic than elegant, but takes us from takes us from spending potentially many hours finding the source of a crash to being pointed at the very line where it happens directly, which is invaluable for production systems. I.e. let not (unknown) perfect be an enemy of good solution.
---
In fromJust issue discussion [4] Ben comments
However, I should emphasize to that we don't want to simply scatter HasCallStacks on every partial function. We should be thoughtful and deliberate (and probably consult with the CLC) when making changes like this.
This email is indeed a request for CLC to comment.
---
Edward Kmett comments was in favour [5]
I’m starting to warm to the idea of putting HasCallStack constraints on the obviously partial combinators in base if we can demonstrate that the performance impact isn't bad in practice, and even really, to some extent if there is a somewhat middling impact on the performance of code that leans on these hard to debug combinators, so long as the performance of their more total siblings remains unaffected. The impact on the perceived debuggability of Haskell seems _likely_ to significantly outweigh the performance concerns.
The results (to follow) shows that impact isn't bad.
Heck, off of the HEAD of cabal, which we’re encouraging folks to build to play with the ghc 8.8.1 alpha, just today we ran into an issue where the very build system we are using spat out an oh so informative “Prelude.foldr1: Empty list” when using a pkgconfig-depends stanza that didnt include any explicit bounds.
---
David Feuer is worried about performance of recursive functions [6]
As I recall, the main things to watch out for, performance-wise, are recursive definitions. When we throw an error from a library function, we *typically* mean that the caller made a mistake. We don't want to build up the call stacks we'd need to debug the library function itself, unless we're actually doing so (in which case we can edit it in, of course).
In current base implementation all recursive functions (like foldr1, or !!) have internal workers, so the callstack is not building-up.
Eric Seidel comments later [8]
What I remember finding back then was that there was a small overhead for non-recursive functions like `head` but a substantial overhead for recursive functions.
I'd suggest extra care around recursive functions ((!!) comes to mind). Perhaps rewrite them to use an inner recursive loop that does not extend the CallStack (this might produce nicer stacktraces anyway).
That is how (!!) is currently written in base. It has an inner worker. (His benchmark link is not valid anymore, so I cannot tell what !! variant he benchmarked).
---
Matthew Pickering comments [7] about -xc RTS flag.
I find this thread a bit concerning. In my opinion the current best way to get call stacks on exceptions is with `-xc`. Adding runtime overhead to every user program is not acceptable.
-xc requires recompiling the program for profiling.
He continues with
There is an argument that it would be good to disentangle `-xc` from `prof` but you would still have to compile `base` in this way which instruments these partial functions (as a user can not do it herself). I'm not too sure on the details but I don't think -xc uses any information from the profiling header so the fact it's connected with -prof seems more like convenience than necessity.
If that work is done, we can drop HasCallStack from partial functions, until then again let not perfect be the enemy of good.
For example, me seeing GHCJS throwing on !!, of Edward cabal-install on foldr1 doesn't help. Rebuilding cabal-install with profiling is viable (but not for an average person who downloads it with ghcup), rebuilding GHCJS for profiling is a skill few people have.
Already in his original proposal Luo Chen says:
When we run a long running program, such as a web service, it is not easy to reproduce the issue, most of the time, you have no chance to recompile or restart your program to debug, all you can rely on is the printed logs, this makes -xc not as useful as HasCallStack.
---
People are worried about performance. GHC itself uses some of the a affected functions. There are 30 foldr1, some head and tail calls, and also !! in `compiler/`
The performance metrics in MR do not regress. GHC is not slowed down.
I also run `nofib` using `--cachegrind -s Norm -j 16`, geometric means:
- allocations: -0.12% - instructions: +0.05% - LLC cache misses: +0.58% - L1 cache misses: +0.03%
And also using `--perf` (without `-j`):
- perf instructions: +0.02% - perf cycles: -0.80%
I don't know if this in bounds of "small changes to GHC". For me this looks acceptable.
---
There is also off-thread blog post from 2018. https://neilmitchell.blogspot.com/2018/03/safe-library-with-better-stack-tra... referencing e.g. https://hackage.haskell.org/package/extra-1.7.9/docs/Data-List-Extra.html#v:... and https://hackage.haskell.org/package/safe
safe library has plenty of reverse dependencies: https://packdeps.haskellers.com/reverse/safe, and extra is used by shake.
---
In summary:
- fromJust has HasCallStack, head doesn't. Let us fix this. - Ben asked for patch so we can test performance, now such patch exists, and it passes GHC CI. - GHC itself uses partial functions, its performance metrics don't regress - -prof and +RTS -xc is an option, but it needs special build of an executable. - This is ultimately for CLC to decide, so chessai, emilypi please tell your opinion.
Discussion period one month, until 2021-06-30 (end of June this year).
Oleg
[1]: https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_231634 [2]: https://mail.haskell.org/pipermail/libraries/2019-November/030059.html https://gitlab.haskell.org/ghc/ghc/-/issues/13573 [3]: https://gitlab.haskell.org/ghc/ghc/-/issues/17040#note_218035 [4]: https://gitlab.haskell.org/ghc/ghc/-/issues/15559 [5]: https://mail.haskell.org/pipermail/libraries/2019-June/029665.html [6]: https://mail.haskell.org/pipermail/libraries/2019-June/029666.html [7]: https://mail.haskell.org/pipermail/libraries/2019-June/029672.html [8]: https://mail.haskell.org/pipermail/libraries/2019-June/029667.html
---
# bytes allocated
+-------------------------------++--+-------------+------------------+ | || | master/ | callstack/ (rel) | +===============================++==+=============+==================+ | imaginary/bernouilli || | 2.823e9 | 0.00% | | imaginary/digits-of-e1 || | 1.069e9 | 0.00% | | imaginary/digits-of-e2 || | 2.152e9 | 0.00% | | imaginary/exp3_8 || | 5.888e9 | 0.00% | | imaginary/gen_regexps || | 9.104e8 | 0.00% | | imaginary/integrate || | 3.768e9 | 0.00% | | imaginary/kahan || | 49088.000 | 0.00% | | imaginary/paraffins || | 3.829e9 | 0.00% | | imaginary/primes || | 2.928e9 | 0.00% | | imaginary/queens || | 6.709e8 | 0.00% | | imaginary/rfib || | 139952.000 | 0.00% | | imaginary/tak || | 97344.000 | 0.00% | | imaginary/wheel-sieve1 || | 1.344e8 | 0.00% | | imaginary/wheel-sieve2 || | 2.430e9 | 0.00% | | imaginary/x2n1 || | 2.561e8 | 0.00% | | parallel/blackscholes || | 1.980e9 | 0.00% | | parallel/coins || | 5.252e9 | 0.00% | | parallel/gray || | 2.010e9 | +0.00% | | parallel/mandel || | 8.524e9 | 0.00% | | parallel/matmult || | 8.974e7 | 0.00% | | parallel/minimax || | 2.212e10 | 0.00% | | parallel/nbody || | 1498304.000 | 0.00% | | parallel/parfib || | 3.651e8 | 0.00% | | parallel/partree || | 3.290e9 | 0.00% | | parallel/prsa || | 2.097e9 | 0.00% | | parallel/queens || | 6.846e8 | 0.00% | | parallel/ray || | 1.357e10 | 0.00% | | parallel/sumeuler || | 1785016.000 | 0.00% | | parallel/transclos || | 8.976e9 | 0.00% | | real/anna || | 2.022e9 | +0.01% | | real/ben-raytrace || | 3.418e10 | 0.00% | | real/bspt || | 3.747e9 | 0.00% | | real/cacheprof || | 2.689e9 | 0.00% | | real/compress || | 2.807e9 | 0.00% | | real/compress2 || | 3.436e9 | 0.00% | | real/eff/CS || | 1.601e8 | 0.00% | | real/eff/CSD || | 1.600e9 | 0.00% | | real/eff/FS || | 1.760e9 | 0.00% | | real/eff/S || | 2.401e8 | 0.00% | | real/eff/VS || | 4.831e8 | 0.00% | | real/eff/VSD || | 50736.000 | 0.00% | | real/eff/VSM || | 4.001e8 | 0.00% | | real/fem || | 4.947e9 | -2.81% | | real/fluid || | 2.169e9 | -0.00% | | real/fulsom || | 1.961e9 | 0.00% | | real/gamteb || | 4.447e9 | 0.00% | | real/gg || | 2.654e9 | 0.00% | | real/grep || | 4.623e9 | 0.00% | | real/hidden || | 5.100e9 | 0.00% | | real/hpg || | 3.160e9 | -0.10% | | real/infer || | 1.731e9 | 0.00% | | real/lift || | 2.761e9 | 0.00% | | real/linear || | 5.412e9 | -0.07% | | real/maillist || | 3.331e9 | 0.00% | | real/mkhprog || | 9748392.000 | 0.00% | | real/parser || | 2.666e9 | 0.00% | | real/pic || | 1.469e9 | 0.00% | | real/prolog || | 2.922e9 | -0.02% | | real/reptile || | 5.121e9 | 0.00% | | real/rsa || | 8.414e8 | 0.00% | | real/scs || | 4.044e9 | 0.00% | | real/smallpt || | 2.874e9 | 0.00% | | real/symalg || | 3.195e8 | 0.00% | | real/veritas || | 4.172e9 | 0.00% | | shootout/binary-trees || | 4.300e9 | 0.00% | | shootout/fannkuch-redux || | 69144.000 | -0.03% | | shootout/fasta || | 1.718e9 | +0.00% | | shootout/k-nucleotide || | 7.081e7 | +0.00% | | shootout/n-body || | 130608.000 | 0.00% | | shootout/pidigits || | 1.027e10 | 0.00% | | shootout/reverse-complement || | 59768.000 | 0.00% | | shootout/spectral-norm || | 178112.000 | 0.00% | | smp/callback001 || | 1.114e9 | 0.00% | | smp/callback002 || | 3.264e9 | 0.00% | | smp/chan || | 1.240e9 | 0.00% | | smp/sieve || | 1.410e9 | 0.00% | | smp/threads001 || | 1.072e10 | 0.00% | | smp/threads003 || | 3.051e8 | -0.01% | | smp/threads006 || | 2.242e8 | 0.00% | | smp/threads007 || | 1.778e9 | -0.00% | | spectral/ansi || | 6.713e9 | 0.00% | | spectral/atom || | 3.580e9 | 0.00% | | spectral/awards || | 4.759e9 | 0.00% | | spectral/banner || | 6.156e9 | 0.00% | | spectral/boyer || | 4.665e9 | 0.00% | | spectral/boyer2 || | 1.153e9 | 0.00% | | spectral/calendar || | 7.102e9 | 0.00% | | spectral/cichelli || | 1.969e9 | 0.00% | | spectral/circsim || | 4.850e9 | 0.00% | | spectral/clausify || | 2.095e9 | 0.00% | | spectral/constraints || | 4.872e9 | 0.00% | | spectral/cryptarithm1 || | 5.981e9 | 0.00% | | spectral/cryptarithm2 || | 3.663e9 | 0.00% | | spectral/cse || | 3.802e9 | 0.00% | | spectral/dom-lt || | 3.890e9 | 0.00% | | spectral/eliza || | 4.102e9 | +0.00% | | spectral/exact-reals || | 9.584e8 | -0.00% | | spectral/expert || | 2.090e9 | 0.00% | | spectral/fft2 || | 1.431e9 | -0.22% | | spectral/fibheaps || | 4.737e9 | 0.00% | | spectral/fish || | 6.193e9 | 0.00% | | spectral/gcd || | 2.069e9 | 0.00% | | spectral/hartel/comp_lab_zift || | 4.740e9 | 0.00% | | spectral/hartel/event || | 3.635e9 | -12.13% | | spectral/hartel/fft || | 1.611e9 | 0.00% | | spectral/hartel/genfft || | 8.020e9 | 0.00% | | spectral/hartel/ida || | 3.515e9 | 0.00% | | spectral/hartel/listcompr || | 6.157e9 | 0.00% | | spectral/hartel/listcopy || | 6.758e9 | 0.00% | | spectral/hartel/nucleic2 || | 2.965e9 | 0.00% | | spectral/hartel/parstof || | 1.368e9 | 0.00% | | spectral/hartel/sched || | 3.675e9 | 0.00% | | spectral/hartel/solid || | 3.509e9 | 0.00% | | spectral/hartel/transform || | 3.959e9 | 0.00% | | spectral/hartel/typecheck || | 2.570e9 | 0.00% | | spectral/hartel/wang || | 4.735e9 | 0.00% | | spectral/hartel/wave4main || | 1.147e9 | 0.00% | | spectral/integer || | 3.260e9 | 0.00% | | spectral/knights || | 1.094e9 | 0.00% | | spectral/lambda || | 2.950e9 | 0.00% | | spectral/last-piece || | 6.852e8 | 0.00% | | spectral/lcss || | 6.565e9 | 0.00% | | spectral/life || | 6.799e9 | 0.00% | | spectral/mandel || | 1.972e9 | 0.00% | | spectral/mandel2 || | 5.231e8 | 0.00% | | spectral/mate || | 4.598e9 | 0.00% | | spectral/minimax || | 2.683e9 | 0.00% | | spectral/multiplier || | 2.850e9 | 0.00% | | spectral/para || | 4.056e9 | 0.00% | | spectral/power || | 1.428e9 | 0.00% | | spectral/pretty || | 136880.000 | -0.11% | | spectral/primetest || | 8.455e8 | 0.00% | | spectral/puzzle || | 1.809e9 | 0.00% | | spectral/rewrite || | 1.694e9 | 0.00% | | spectral/scc || | 58280.000 | 0.00% | | spectral/simple || | 2.316e9 | 0.00% | | spectral/sorting || | 3.078e9 | 0.00% | | spectral/sphere || | 2.298e9 | 0.00% | | spectral/treejoin || | 2.796e9 | 0.00% | +===============================++==+=============+==================+ | geom mean || | -0.12% | | +-------------------------------++--+-------------+------------------+
# instructions
+-------------------------------++--+------------+------------------+ | || | master/ | callstack/ (rel) | +===============================++==+============+==================+ | imaginary/bernouilli || | 7.057e9 | +0.00% | | imaginary/digits-of-e1 || | 5.549e9 | -0.00% | | imaginary/digits-of-e2 || | 5.555e9 | -0.01% | | imaginary/exp3_8 || | 8.779e9 | +0.03% | | imaginary/gen_regexps || | 8.650e9 | -0.00% | | imaginary/integrate || | 6.276e9 | +0.00% | | imaginary/kahan || | 6.707e9 | +0.00% | | imaginary/paraffins || | 8.089e9 | -0.00% | | imaginary/primes || | 8.278e9 | +0.01% | | imaginary/queens || | 1.010e10 | -0.00% | | imaginary/rfib || | 5.299e9 | +0.00% | | imaginary/tak || | 5.867e9 | +0.00% | | imaginary/wheel-sieve1 || | 6.615e9 | +0.04% | | imaginary/wheel-sieve2 || | 6.286e9 | +0.02% | | imaginary/x2n1 || | 7.452e9 | +0.00% | | parallel/blackscholes || | 8.022e9 | +0.00% | | parallel/coins || | 1.149e10 | +0.00% | | parallel/gray || | 6.141e9 | +0.14% | | parallel/mandel || | 3.288e10 | -0.01% | | parallel/matmult || | 1.115e10 | -0.00% | | parallel/minimax || | 3.863e10 | -0.08% | | parallel/nbody || | 7.939e8 | +0.00% | | parallel/parfib || | 2.231e10 | +0.00% | | parallel/partree || | 7.347e9 | +0.01% | | parallel/prsa || | 1.811e10 | -0.00% | | parallel/queens || | 1.037e10 | +0.00% | | parallel/ray || | 1.299e10 | +0.00% | | parallel/sumeuler || | 3.483e9 | +0.00% | | parallel/transclos || | 1.982e10 | +0.00% | | real/anna || | 5.343e9 | +0.05% | | real/ben-raytrace || | 1.215e11 | +0.00% | | real/bspt || | 9.226e9 | -0.00% | | real/cacheprof || | 6.763e9 | +0.02% | | real/compress || | 5.820e9 | -0.00% | | real/compress2 || | 4.569e9 | +0.00% | | real/eff/CS || | 7.758e8 | +0.00% | | real/eff/CSD || | 3.745e9 | +0.00% | | real/eff/FS || | 2.799e9 | +0.00% | | real/eff/S || | 4.334e9 | +0.00% | | real/eff/VS || | 2.221e9 | +0.01% | | real/eff/VSD || | 8.075e7 | +0.00% | | real/eff/VSM || | 9.635e8 | +0.00% | | real/fem || | 6.649e9 | -0.64% | | real/fluid || | 3.904e9 | -0.00% | | real/fulsom || | 2.490e9 | +0.00% | | real/gamteb || | 1.013e10 | +0.01% | | real/gg || | 7.253e9 | +0.01% | | real/grep || | 7.546e9 | +0.00% | | real/hidden || | 7.198e9 | +1.64% | | real/hpg || | 4.966e9 | +0.88% | | real/infer || | 8.318e9 | +0.00% | | real/lift || | 4.430e9 | -0.00% | | real/linear || | 8.436e9 | +1.97% | | real/maillist || | 1.974e9 | +0.05% | | real/mkhprog || | 2.249e7 | +0.00% | | real/parser || | 5.178e9 | -0.00% | | real/pic || | 3.268e9 | -0.00% | | real/prolog || | 5.742e9 | +0.01% | | real/reptile || | 6.046e9 | +0.00% | | real/rsa || | 7.191e9 | +0.00% | | real/scs || | 6.174e9 | +0.00% | | real/smallpt || | 1.128e10 | +0.00% | | real/symalg || | 8.230e9 | +0.00% | | real/veritas || | 4.832e9 | -0.01% | | shootout/binary-trees || | 1.073e10 | +0.01% | | shootout/fannkuch-redux || | 1.909e10 | -0.00% | | shootout/fasta || | 4.189e9 | +0.00% | | shootout/k-nucleotide || | 4.219e9 | +0.01% | | shootout/n-body || | 3.721e9 | +0.00% | | shootout/pidigits || | 8.084e9 | +0.00% | | shootout/reverse-complement || | 781364.000 | +0.51% | | shootout/spectral-norm || | 4.252e9 | +0.00% | | smp/callback001 || | 1.573e9 | +0.01% | | smp/callback002 || | 2.621e9 | +0.00% | | smp/chan || | 8.718e9 | +2.56% | | smp/sieve || | 5.538e9 | -0.87% | | smp/threads001 || | 5.139e9 | -0.00% | | smp/threads003 || | 2.903e9 | -0.05% | | smp/threads006 || | 7.402e8 | +0.01% | | smp/threads007 || | 4.090e9 | -0.00% | | spectral/ansi || | 5.961e9 | -0.00% | | spectral/atom || | 5.861e9 | +0.01% | | spectral/awards || | 8.744e9 | +0.00% | | spectral/banner || | 8.824e9 | +0.23% | | spectral/boyer || | 7.657e9 | -0.00% | | spectral/boyer2 || | 8.881e9 | -0.00% | | spectral/calendar || | 7.546e9 | -0.00% | | spectral/cichelli || | 8.625e9 | +0.01% | | spectral/circsim || | 6.850e9 | +0.00% | | spectral/clausify || | 6.223e9 | -0.00% | | spectral/constraints || | 8.314e9 | +0.14% | | spectral/cryptarithm1 || | 7.787e9 | -0.00% | | spectral/cryptarithm2 || | 6.761e9 | +0.00% | | spectral/cse || | 6.358e9 | -0.00% | | spectral/dom-lt || | 7.774e9 | -0.00% | | spectral/eliza || | 8.273e9 | +0.00% | | spectral/exact-reals || | 5.597e9 | +0.01% | | spectral/expert || | 5.087e9 | +0.04% | | spectral/fft2 || | 8.831e9 | +0.31% | | spectral/fibheaps || | 8.011e9 | -0.00% | | spectral/fish || | 7.314e9 | -0.00% | | spectral/gcd || | 6.386e9 | -0.00% | | spectral/hartel/comp_lab_zift || | 8.717e9 | -0.00% | | spectral/hartel/event || | 9.071e9 | -2.06% | | spectral/hartel/fft || | 3.239e9 | +0.00% | | spectral/hartel/genfft || | 1.020e10 | +0.00% | | spectral/hartel/ida || | 5.413e9 | -0.30% | | spectral/hartel/listcompr || | 6.142e9 | +0.02% | | spectral/hartel/listcopy || | 6.757e9 | +0.02% | | spectral/hartel/nucleic2 || | 4.402e9 | +0.00% | | spectral/hartel/parstof || | 5.555e9 | -0.00% | | spectral/hartel/sched || | 5.800e9 | +0.00% | | spectral/hartel/solid || | 5.845e9 | +0.24% | | spectral/hartel/transform || | 5.709e9 | -0.00% | | spectral/hartel/typecheck || | 5.841e9 | +0.00% | | spectral/hartel/wang || | 8.731e9 | +0.12% | | spectral/hartel/wave4main || | 6.024e9 | -0.00% | | spectral/integer || | 7.068e9 | -0.00% | | spectral/knights || | 8.294e9 | -0.00% | | spectral/lambda || | 8.081e9 | +0.00% | | spectral/last-piece || | 1.878e9 | +0.00% | | spectral/lcss || | 8.761e9 | -0.00% | | spectral/life || | 9.136e9 | -0.00% | | spectral/mandel || | 7.037e9 | +0.00% | | spectral/mandel2 || | 3.957e9 | +0.00% | | spectral/mate || | 7.565e9 | +0.01% | | spectral/minimax || | 8.649e9 | -0.00% | | spectral/multiplier || | 6.096e9 | +0.00% | | spectral/para || | 6.561e9 | +0.00% | | spectral/power || | 6.749e9 | -0.00% | | spectral/pretty || | 851224.000 | +0.17% | | spectral/primetest || | 7.391e9 | -0.00% | | spectral/puzzle || | 6.401e9 | +0.00% | | spectral/rewrite || | 5.553e9 | +0.67% | | spectral/scc || | 774059.000 | +0.49% | | spectral/simple || | 1.214e10 | +0.01% | | spectral/sorting || | 9.074e9 | -0.00% | | spectral/sphere || | 5.371e9 | -0.00% | | spectral/treejoin || | 9.768e9 | +0.00% | +===============================++==+============+==================+ | geom mean || | +0.05% | | +-------------------------------++--+------------+------------------+
# LLC cache misses
+-------------------------------++--+-------------+------------------+ | || | master/ | callstack/ (rel) | +===============================++==+=============+==================+ | imaginary/bernouilli || | 4964.000 | +1.37% | | imaginary/digits-of-e1 || | 4863.000 | -0.35% | | imaginary/digits-of-e2 || | 4958.000 | +1.63% | | imaginary/exp3_8 || | 4513.000 | +0.42% | | imaginary/gen_regexps || | 4535.000 | +0.09% | | imaginary/integrate || | 4733.000 | +1.08% | | imaginary/kahan || | 4447.000 | -0.13% | | imaginary/paraffins || | 4826.000 | -0.08% | | imaginary/primes || | 4876.000 | +0.94% | | imaginary/queens || | 4541.000 | -0.07% | | imaginary/rfib || | 4485.000 | -0.13% | | imaginary/tak || | 4461.000 | +0.25% | | imaginary/wheel-sieve1 || | 4865.000 | +1.29% | | imaginary/wheel-sieve2 || | 4893.000 | +1.25% | | imaginary/x2n1 || | 4630.000 | +0.22% | | parallel/blackscholes || | 12862.000 | +0.30% | | parallel/coins || | 6455583.000 | +0.00% | | parallel/gray || | 6372.000 | +1.77% | | parallel/mandel || | 852468.000 | -0.02% | | parallel/matmult || | 4615.000 | -0.30% | | parallel/minimax || | 4617.000 | +0.84% | | parallel/nbody || | 4455.000 | -0.04% | | parallel/parfib || | 4528.000 | +0.22% | | parallel/partree || | 4627.000 | +0.43% | | parallel/prsa || | 4619.000 | +0.54% | | parallel/queens || | 4528.000 | +1.37% | | parallel/ray || | 4626.000 | +0.35% | | parallel/sumeuler || | 4446.000 | +0.13% | | parallel/transclos || | 4741.000 | -0.17% | | real/anna || | 6443.000 | +5.34% | | real/ben-raytrace || | 6819.000 | -0.13% | | real/bspt || | 5195.000 | -0.21% | | real/cacheprof || | 6734.000 | +1.62% | | real/compress || | 4914.000 | +0.53% | | real/compress2 || | 4783.000 | -0.25% | | real/eff/CS || | 4439.000 | +0.38% | | real/eff/CSD || | 4446.000 | 0.00% | | real/eff/FS || | 4451.000 | -0.04% | | real/eff/S || | 5619842.000 | -0.00% | | real/eff/VS || | 1254362.000 | +0.00% | | real/eff/VSD || | 4403.000 | -0.43% | | real/eff/VSM || | 4445.000 | -0.11% | | real/fem || | 4967.000 | +2.07% | | real/fluid || | 6117.000 | +0.85% | | real/fulsom || | 5060.000 | -0.10% | | real/gamteb || | 5615.000 | +0.64% | | real/gg || | 5242.000 | +0.88% | | real/grep || | 4866.000 | +0.62% | | real/hidden || | 5576.000 | +2.06% | | real/hpg || | 5614.000 | +2.92% | | real/infer || | 4833.000 | -0.14% | | real/lift || | 4809.000 | +1.48% | | real/linear || | 5368.000 | +4.53% | | real/maillist || | 12942.000 | +0.32% | | real/mkhprog || | 4483.000 | +0.20% | | real/parser || | 5309.000 | +1.64% | | real/pic || | 4937.000 | +0.81% | | real/prolog || | 4843.000 | +1.03% | | real/reptile || | 5548.000 | -0.43% | | real/rsa || | 4667.000 | +0.26% | | real/scs || | 5667.000 | +1.48% | | real/smallpt || | 5836.000 | +1.29% | | real/symalg || | 5422.000 | +0.30% | | real/veritas || | 6984.000 | +2.61% | | shootout/binary-trees || | 5079.000 | +0.73% | | shootout/fannkuch-redux || | 4478.000 | -0.51% | | shootout/fasta || | 4625.000 | -0.13% | | shootout/k-nucleotide || | 1161663.000 | -2.58% | | shootout/n-body || | 4512.000 | +0.04% | | shootout/pidigits || | 4651.000 | -0.39% | | shootout/reverse-complement || | 4416.000 | 0.00% | | shootout/spectral-norm || | 4477.000 | +0.25% | | smp/callback001 || | 488453.000 | -0.01% | | smp/callback002 || | 4513.000 | -0.11% | | smp/chan || | 1.110e7 | +7.03% | | smp/sieve || | 4555.000 | +0.72% | | smp/threads001 || | 4481.000 | +0.49% | | smp/threads003 || | 83898.000 | -1.63% | | smp/threads006 || | 1804659.000 | +0.49% | | smp/threads007 || | 2427701.000 | -0.24% | | spectral/ansi || | 4759.000 | +0.27% | | spectral/atom || | 4691.000 | +0.62% | | spectral/awards || | 4717.000 | +1.14% | | spectral/banner || | 5056.000 | +1.21% | | spectral/boyer || | 5045.000 | +0.06% | | spectral/boyer2 || | 4832.000 | -0.04% | | spectral/calendar || | 4622.000 | +0.74% | | spectral/cichelli || | 4728.000 | +1.67% | | spectral/circsim || | 40269.000 | -1.55% | | spectral/clausify || | 4835.000 | -0.17% | | spectral/constraints || | 4871.000 | +1.44% | | spectral/cryptarithm1 || | 4562.000 | +0.18% | | spectral/cryptarithm2 || | 4600.000 | +0.07% | | spectral/cse || | 4534.000 | +0.33% | | spectral/dom-lt || | 5179.000 | +0.10% | | spectral/eliza || | 4968.000 | +0.34% | | spectral/exact-reals || | 4840.000 | +1.34% | | spectral/expert || | 4770.000 | +2.81% | | spectral/fft2 || | 5296.000 | +1.91% | | spectral/fibheaps || | 4858.000 | +0.02% | | spectral/fish || | 4687.000 | +0.04% | | spectral/gcd || | 4575.000 | +0.22% | | spectral/hartel/comp_lab_zift || | 4960.000 | +0.58% | | spectral/hartel/event || | 4875.000 | +0.96% | | spectral/hartel/fft || | 5121.000 | +0.70% | | spectral/hartel/genfft || | 4875.000 | +0.04% | | spectral/hartel/ida || | 4877.000 | +0.84% | | spectral/hartel/listcompr || | 4651.000 | +1.76% | | spectral/hartel/listcopy || | 4649.000 | +1.96% | | spectral/hartel/nucleic2 || | 5998.000 | +0.68% | | spectral/hartel/parstof || | 5583.000 | -0.05% | | spectral/hartel/sched || | 4856.000 | -0.23% | | spectral/hartel/solid || | 5282.000 | +1.21% | | spectral/hartel/transform || | 4875.000 | +1.56% | | spectral/hartel/typecheck || | 4724.000 | +0.95% | | spectral/hartel/wang || | 4993.000 | +2.38% | | spectral/hartel/wave4main || | 4877.000 | -0.04% | | spectral/integer || | 4619.000 | -0.13% | | spectral/knights || | 4694.000 | +0.58% | | spectral/lambda || | 4984.000 | +0.66% | | spectral/last-piece || | 4869.000 | -0.21% | | spectral/lcss || | 4876.000 | +0.04% | | spectral/life || | 4884.000 | +1.29% | | spectral/mandel || | 4900.000 | +0.16% | | spectral/mandel2 || | 4479.000 | -0.13% | | spectral/mate || | 5086.000 | +1.83% | | spectral/minimax || | 4605.000 | -0.04% | | spectral/multiplier || | 4672.000 | +0.98% | | spectral/para || | 4935.000 | +0.83% | | spectral/power || | 4918.000 | +0.18% | | spectral/pretty || | 4432.000 | +0.14% | | spectral/primetest || | 5021.000 | -0.04% | | spectral/puzzle || | 4603.000 | +0.04% | | spectral/rewrite || | 4618.000 | +0.97% | | spectral/scc || | 4415.000 | +0.34% | | spectral/simple || | 2413361.000 | -1.18% | | spectral/sorting || | 5357.000 | -1.55% | | spectral/sphere || | 5717.000 | +0.84% | | spectral/treejoin || | 5130.000 | +0.02% | +===============================++==+=============+==================+ | geom mean || | +0.58% | | +-------------------------------++--+-------------+------------------+
# L1 cache misses
+-------------------------------++--+-------------+------------------+ | || | master/ | callstack/ (rel) | +===============================++==+=============+==================+ | imaginary/bernouilli || | 4.235e7 | +0.13% | | imaginary/digits-of-e1 || | 3708507.000 | -0.06% | | imaginary/digits-of-e2 || | 2.913e7 | -0.16% | | imaginary/exp3_8 || | 1.881e8 | -0.07% | | imaginary/gen_regexps || | 2.915e7 | -0.05% | | imaginary/integrate || | 1341520.000 | -4.99% | | imaginary/kahan || | 7577.000 | +0.15% | | imaginary/paraffins || | 5.994e7 | -0.02% | | imaginary/primes || | 1.165e8 | -0.01% | | imaginary/queens || | 315321.000 | -0.94% | | imaginary/rfib || | 7833.000 | -0.46% | | imaginary/tak || | 7688.000 | +0.03% | | imaginary/wheel-sieve1 || | 7508229.000 | +0.51% | | imaginary/wheel-sieve2 || | 4.338e7 | -0.02% | | imaginary/x2n1 || | 129793.000 | +0.50% | | parallel/blackscholes || | 1.550e7 | -0.16% | | parallel/coins || | 3.952e7 | +0.26% | | parallel/gray || | 1.736e7 | +1.38% | | parallel/mandel || | 1.356e7 | +0.20% | | parallel/matmult || | 5.267e8 | -0.01% | | parallel/minimax || | 1.140e8 | -0.14% | | parallel/nbody || | 1.248e7 | -0.02% | | parallel/parfib || | 252463.000 | +6.49% | | parallel/partree || | 5.642e7 | +0.08% | | parallel/prsa || | 5700667.000 | +0.27% | | parallel/queens || | 3129546.000 | +0.19% | | parallel/ray || | 1.260e7 | +4.27% | | parallel/sumeuler || | 35221.000 | -0.07% | | parallel/transclos || | 1.863e7 | +0.17% | | real/anna || | 3.737e7 | +0.10% | | real/ben-raytrace || | 6.695e7 | +0.59% | | real/bspt || | 1.492e8 | +0.01% | | real/cacheprof || | 5.661e7 | -0.24% | | real/compress || | 3.247e7 | -2.71% | | real/compress2 || | 2.717e7 | +0.13% | | real/eff/CS || | 54141.000 | -0.28% | | real/eff/CSD || | 532877.000 | -0.07% | | real/eff/FS || | 512883.000 | +0.18% | | real/eff/S || | 1.412e7 | -0.07% | | real/eff/VS || | 6730192.000 | -0.42% | | real/eff/VSD || | 7449.000 | -0.30% | | real/eff/VSM || | 121912.000 | -0.22% | | real/fem || | 3.841e7 | +6.86% | | real/fluid || | 1.579e7 | +0.91% | | real/fulsom || | 1.036e7 | +0.03% | | real/gamteb || | 3.473e7 | -0.02% | | real/gg || | 7.439e7 | +0.09% | | real/grep || | 7.940e7 | +0.08% | | real/hidden || | 1.074e7 | +0.20% | | real/hpg || | 1.757e7 | +0.32% | | real/infer || | 2.006e8 | -0.02% | | real/lift || | 2.741e7 | +0.20% | | real/linear || | 8.899e7 | +1.27% | | real/maillist || | 9646364.000 | -0.06% | | real/mkhprog || | 11950.000 | +3.72% | | real/parser || | 1.269e7 | +0.92% | | real/pic || | 4.450e7 | -0.24% | | real/prolog || | 2.973e7 | -0.34% | | real/reptile || | 1.945e7 | -0.07% | | real/rsa || | 1310283.000 | -0.18% | | real/scs || | 1.916e7 | +0.06% | | real/smallpt || | 7088127.000 | +0.47% | | real/symalg || | 5981494.000 | -0.11% | | real/veritas || | 1.860e7 | -1.22% | | shootout/binary-trees || | 3.661e7 | +0.01% | | shootout/fannkuch-redux || | 7741.000 | -0.62% | | shootout/fasta || | 5.215e7 | +0.01% | | shootout/k-nucleotide || | 1.247e7 | +0.01% | | shootout/n-body || | 8025.000 | +0.04% | | shootout/pidigits || | 2.316e8 | +0.02% | | shootout/reverse-complement || | 7627.000 | -0.20% | | shootout/spectral-norm || | 21764.000 | +0.23% | | smp/callback001 || | 5824201.000 | +0.07% | | smp/callback002 || | 8288204.000 | -0.09% | | smp/chan || | 2.846e7 | +2.62% | | smp/sieve || | 5.400e7 | -1.10% | | smp/threads001 || | 2.312e7 | +0.45% | | smp/threads003 || | 4.773e7 | -0.22% | | smp/threads006 || | 9331792.000 | +0.02% | | smp/threads007 || | 2.721e7 | +0.36% | | spectral/ansi || | 6.940e7 | -0.01% | | spectral/atom || | 1.248e8 | +0.01% | | spectral/awards || | 7810137.000 | -1.82% | | spectral/banner || | 3.727e7 | +2.57% | | spectral/boyer || | 2.284e7 | -0.19% | | spectral/boyer2 || | 3.926e7 | -0.63% | | spectral/calendar || | 7366268.000 | -0.91% | | spectral/cichelli || | 1.797e7 | +0.02% | | spectral/circsim || | 9.138e7 | +0.07% | | spectral/clausify || | 6134801.000 | -0.11% | | spectral/constraints || | 2.950e7 | +0.38% | | spectral/cryptarithm1 || | 3139494.000 | +0.08% | | spectral/cryptarithm2 || | 3481535.000 | +0.35% | | spectral/cse || | 4798864.000 | -7.01% | | spectral/dom-lt || | 2.556e7 | -0.11% | | spectral/eliza || | 1.921e7 | +1.14% | | spectral/exact-reals || | 2391927.000 | +1.24% | | spectral/expert || | 2.311e7 | -0.08% | | spectral/fft2 || | 1.917e8 | +0.81% | | spectral/fibheaps || | 5.236e7 | -0.06% | | spectral/fish || | 8017906.000 | +0.13% | | spectral/gcd || | 1652038.000 | +0.07% | | spectral/hartel/comp_lab_zift || | 6.167e7 | -0.11% | | spectral/hartel/event || | 4.857e7 | -2.47% | | spectral/hartel/fft || | 3.723e7 | -0.04% | | spectral/hartel/genfft || | 2.201e7 | +1.31% | | spectral/hartel/ida || | 1.316e7 | +0.16% | | spectral/hartel/listcompr || | 9143834.000 | +1.54% | | spectral/hartel/listcopy || | 1.018e7 | +2.27% | | spectral/hartel/nucleic2 || | 1.035e7 | -2.83% | | spectral/hartel/parstof || | 2.290e7 | -2.36% | | spectral/hartel/sched || | 6090930.000 | -0.15% | | spectral/hartel/solid || | 3.408e7 | +0.00% | | spectral/hartel/transform || | 2.255e7 | +0.25% | | spectral/hartel/typecheck || | 1.447e7 | -1.37% | | spectral/hartel/wang || | 1.089e8 | +0.19% | | spectral/hartel/wave4main || | 8.229e7 | +0.29% | | spectral/integer || | 1101168.000 | -0.06% | | spectral/knights || | 3.424e7 | +0.92% | | spectral/lambda || | 6.667e7 | +0.14% | | spectral/last-piece || | 3620219.000 | -0.43% | | spectral/lcss || | 7.252e7 | -0.26% | | spectral/life || | 1.231e8 | -0.11% | | spectral/mandel || | 741678.000 | +0.09% | | spectral/mandel2 || | 311375.000 | +0.79% | | spectral/mate || | 4858523.000 | -1.23% | | spectral/minimax || | 1172869.000 | +0.51% | | spectral/multiplier || | 1.060e8 | +0.03% | | spectral/para || | 5.089e7 | +0.15% | | spectral/power || | 4.488e7 | -0.00% | | spectral/pretty || | 7649.000 | +0.38% | | spectral/primetest || | 500918.000 | +1.32% | | spectral/puzzle || | 3210919.000 | -0.09% | | spectral/rewrite || | 825290.000 | -7.73% | | spectral/scc || | 7483.000 | +0.16% | | spectral/simple || | 8.786e7 | +0.01% | | spectral/sorting || | 1.261e8 | -0.02% | | spectral/sphere || | 4854033.000 | +0.43% | | spectral/treejoin || | 8.455e7 | +0.03% | +===============================++==+=============+==================+ | geom mean || | +0.03% | | +-------------------------------++--+-------------+------------------+
# perf instructions
+-------------------------------++--+-------------+------------------+ | || | master/ | callstack/ (rel) | +===============================++==+=============+==================+ | imaginary/bernouilli || | 7.085e9 | -0.22% | | imaginary/digits-of-e1 || | 5.547e9 | -0.03% | | imaginary/digits-of-e2 || | 5.549e9 | -0.06% | | imaginary/exp3_8 || | 8.785e9 | -0.06% | | imaginary/gen_regexps || | 8.650e9 | -0.04% | | imaginary/integrate || | 6.260e9 | +0.20% | | imaginary/kahan || | 6.699e9 | +0.16% | | imaginary/paraffins || | 8.112e9 | -0.24% | | imaginary/primes || | 8.244e9 | -0.24% | | imaginary/queens || | 1.009e10 | +0.04% | | imaginary/rfib || | 5.298e9 | +0.14% | | imaginary/tak || | 5.861e9 | +0.10% | | imaginary/wheel-sieve1 || | 6.662e9 | -0.76% | | imaginary/wheel-sieve2 || | 6.278e9 | +0.38% | | imaginary/x2n1 || | 7.453e9 | -0.12% | | parallel/blackscholes || | 8.096e9 | -0.18% | | parallel/coins || | 1.194e10 | -0.03% | | parallel/gray || | 6.154e9 | -0.07% | | parallel/mandel || | 3.293e10 | +0.12% | | parallel/matmult || | 1.118e10 | +0.06% | | parallel/minimax || | 3.867e10 | -0.11% | | parallel/nbody || | 7.934e8 | +0.05% | | parallel/parfib || | 2.232e10 | -0.01% | | parallel/partree || | 7.358e9 | +0.02% | | parallel/prsa || | 1.808e10 | +0.14% | | parallel/queens || | 1.037e10 | -0.03% | | parallel/ray || | 1.301e10 | +0.01% | | parallel/sumeuler || | 3.487e9 | -0.01% | | parallel/transclos || | 1.983e10 | -0.02% | | real/anna || | 5.334e9 | +0.27% | | real/ben-raytrace || | 1.216e11 | -0.02% | | real/bspt || | 9.224e9 | -0.05% | | real/cacheprof || | 6.735e9 | -0.46% | | real/compress || | 5.810e9 | +0.07% | | real/compress2 || | 4.580e9 | -0.21% | | real/eff/CS || | 7.582e8 | +1.19% | | real/eff/CSD || | 3.758e9 | -0.56% | | real/eff/FS || | 2.792e9 | +0.02% | | real/eff/S || | 4.760e9 | -0.60% | | real/eff/VS || | 2.285e9 | +0.20% | | real/eff/VSD || | 8.315e7 | +0.02% | | real/eff/VSM || | 9.480e8 | +1.48% | | real/fem || | 6.641e9 | -0.53% | | real/fluid || | 3.914e9 | +0.00% | | real/fulsom || | 2.497e9 | -0.22% | | real/gamteb || | 1.013e10 | -0.01% | | real/gg || | 7.243e9 | +0.12% | | real/grep || | 7.563e9 | -0.10% | | real/hidden || | 7.209e9 | +1.57% | | real/hpg || | 4.982e9 | +0.91% | | real/infer || | 8.312e9 | +0.11% | | real/lift || | 4.441e9 | -0.18% | | real/linear || | 8.438e9 | +1.90% | | real/maillist || | 4.297e9 | -0.94% | | real/mkhprog || | 2.874e7 | -0.06% | | real/parser || | 5.177e9 | +0.14% | | real/pic || | 3.265e9 | +0.10% | | real/prolog || | 5.755e9 | -0.18% | | real/reptile || | 6.050e9 | +0.07% | | real/rsa || | 7.177e9 | +0.03% | | real/scs || | 6.184e9 | -0.23% | | real/smallpt || | 1.129e10 | -0.16% | | real/symalg || | 8.247e9 | -0.14% | | real/veritas || | 4.833e9 | -0.01% | | shootout/binary-trees || | 1.071e10 | +0.12% | | shootout/fannkuch-redux || | 1.912e10 | +0.12% | | shootout/fasta || | 4.273e9 | -0.50% | | shootout/k-nucleotide || | 4.227e9 | -1.34% | | shootout/n-body || | 3.725e9 | -0.23% | | shootout/pidigits || | 8.095e9 | -0.04% | | shootout/reverse-complement || | 3245583.000 | -2.41% | | shootout/spectral-norm || | 4.238e9 | -0.15% | | smp/callback001 || | 1.601e9 | +0.55% | | smp/callback002 || | 2.619e9 | +0.19% | | smp/chan || | 7.817e9 | -0.01% | | smp/sieve || | 2.361e9 | +0.85% | | smp/threads001 || | 5.145e9 | +0.17% | | smp/threads003 || | 2.922e9 | -0.06% | | smp/threads006 || | 1.081e9 | +4.82% | | smp/threads007 || | 4.328e9 | +0.63% | | spectral/ansi || | 5.961e9 | +0.21% | | spectral/atom || | 5.864e9 | -0.10% | | spectral/awards || | 8.749e9 | -0.02% | | spectral/banner || | 8.862e9 | +0.12% | | spectral/boyer || | 7.669e9 | -0.09% | | spectral/boyer2 || | 8.888e9 | +0.04% | | spectral/calendar || | 7.541e9 | +0.13% | | spectral/cichelli || | 8.675e9 | -0.17% | | spectral/circsim || | 6.901e9 | +0.12% | | spectral/clausify || | 6.227e9 | -0.09% | | spectral/constraints || | 8.308e9 | +0.36% | | spectral/cryptarithm1 || | 7.804e9 | -0.23% | | spectral/cryptarithm2 || | 6.757e9 | +0.11% | | spectral/cse || | 6.357e9 | +0.01% | | spectral/dom-lt || | 7.774e9 | +0.17% | | spectral/eliza || | 8.279e9 | -0.12% | | spectral/exact-reals || | 5.599e9 | -0.07% | | spectral/expert || | 5.096e9 | -0.09% | | spectral/fft2 || | 8.818e9 | +0.48% | | spectral/fibheaps || | 8.019e9 | -0.12% | | spectral/fish || | 7.319e9 | -0.03% | | spectral/gcd || | 6.381e9 | +0.26% | | spectral/hartel/comp_lab_zift || | 8.747e9 | -0.45% | | spectral/hartel/event || | 9.153e9 | -1.50% | | spectral/hartel/fft || | 3.237e9 | -0.02% | | spectral/hartel/genfft || | 1.020e10 | +0.14% | | spectral/hartel/ida || | 5.420e9 | -0.32% | | spectral/hartel/listcompr || | 6.143e9 | +0.12% | | spectral/hartel/listcopy || | 6.759e9 | +0.01% | | spectral/hartel/nucleic2 || | 4.413e9 | -0.67% | | spectral/hartel/parstof || | 5.552e9 | +0.04% | | spectral/hartel/sched || | 5.807e9 | -0.02% | | spectral/hartel/solid || | 5.850e9 | +0.22% | | spectral/hartel/transform || | 5.713e9 | -0.01% | | spectral/hartel/typecheck || | 5.844e9 | -0.04% | | spectral/hartel/wang || | 8.727e9 | +0.29% | | spectral/hartel/wave4main || | 6.034e9 | -0.20% | | spectral/integer || | 7.048e9 | +0.64% | | spectral/knights || | 8.310e9 | -0.08% | | spectral/lambda || | 8.091e9 | -0.12% | | spectral/last-piece || | 1.877e9 | +0.11% | | spectral/lcss || | 8.776e9 | -0.10% | | spectral/life || | 9.143e9 | -0.05% | | spectral/mandel || | 7.015e9 | +0.24% | | spectral/mandel2 || | 3.957e9 | +0.03% | | spectral/mate || | 7.573e9 | +0.11% | | spectral/minimax || | 8.645e9 | +0.10% | | spectral/multiplier || | 6.097e9 | +0.06% | | spectral/para || | 6.562e9 | +0.03% | | spectral/power || | 6.758e9 | -0.23% | | spectral/pretty || | 3371581.000 | -0.75% | | spectral/primetest || | 7.409e9 | -0.04% | | spectral/puzzle || | 6.405e9 | -0.19% | | spectral/rewrite || | 5.558e9 | +0.62% | | spectral/scc || | 3244220.000 | -1.55% | | spectral/simple || | 1.220e10 | +0.25% | | spectral/sorting || | 9.082e9 | -0.05% | | spectral/sphere || | 5.371e9 | -0.18% | | spectral/treejoin || | 9.881e9 | -0.07% | +===============================++==+=============+==================+ | geom mean || | +0.02% | | +-------------------------------++--+-------------+------------------+
# perf cycles
+-------------------------------++--+-------------+------------------+ | || | master/ | callstack/ (rel) | +===============================++==+=============+==================+ | imaginary/bernouilli || | 3.726e9 | +0.96% | | imaginary/digits-of-e1 || | 2.561e9 | +3.96% | | imaginary/digits-of-e2 || | 2.828e9 | -1.96% | | imaginary/exp3_8 || | 3.231e9 | +2.40% | | imaginary/gen_regexps || | 4.250e9 | +0.26% | | imaginary/integrate || | 2.968e9 | -9.55% | | imaginary/kahan || | 3.062e9 | -0.40% | | imaginary/paraffins || | 3.083e9 | -1.94% | | imaginary/primes || | 2.593e9 | +1.49% | | imaginary/queens || | 4.713e9 | -0.75% | | imaginary/rfib || | 3.942e9 | -0.09% | | imaginary/tak || | 4.385e9 | -0.60% | | imaginary/wheel-sieve1 || | 4.582e9 | -43.27% | | imaginary/wheel-sieve2 || | 2.563e9 | -2.37% | | imaginary/x2n1 || | 2.867e9 | +0.10% | | parallel/blackscholes || | 4.854e9 | -1.40% | | parallel/coins || | 4.809e9 | -0.08% | | parallel/gray || | 3.600e9 | +2.96% | | parallel/mandel || | 1.481e10 | -1.08% | | parallel/matmult || | 1.570e10 | -2.83% | | parallel/minimax || | 2.420e10 | +7.85% | | parallel/nbody || | 4.377e8 | +1.37% | | parallel/parfib || | 1.752e10 | +0.16% | | parallel/partree || | 3.345e9 | +2.19% | | parallel/prsa || | 7.052e9 | +6.03% | | parallel/queens || | 4.686e9 | +0.06% | | parallel/ray || | 9.246e9 | -2.73% | | parallel/sumeuler || | 4.166e9 | -1.20% | | parallel/transclos || | 1.095e10 | +1.05% | | real/anna || | 5.456e9 | -0.28% | | real/ben-raytrace || | 6.268e10 | +2.87% | | real/bspt || | 3.695e9 | -0.12% | | real/cacheprof || | 3.822e9 | +5.28% | | real/compress || | 2.389e9 | -0.41% | | real/compress2 || | 3.284e9 | -4.00% | | real/eff/CS || | 1.825e8 | +0.07% | | real/eff/CSD || | 1.185e9 | -0.92% | | real/eff/FS || | 9.959e8 | +8.14% | | real/eff/S || | 2.161e9 | +3.14% | | real/eff/VS || | 9.353e8 | -4.17% | | real/eff/VSD || | 2.326e7 | +3.42% | | real/eff/VSM || | 3.006e8 | -15.15% | | real/fem || | 3.274e9 | -5.66% | | real/fluid || | 3.224e9 | -2.00% | | real/fulsom || | 1.922e9 | -1.85% | | real/gamteb || | 5.555e9 | -0.95% | | real/gg || | 3.717e9 | +6.49% | | real/grep || | 3.266e9 | -4.20% | | real/hidden || | 5.666e9 | -6.63% | | real/hpg || | 3.082e9 | +8.56% | | real/infer || | 4.526e9 | +4.02% | | real/lift || | 3.450e9 | -0.91% | | real/linear || | 6.195e9 | -3.28% | | real/maillist || | 3.815e9 | -3.44% | | real/mkhprog || | 1.859e7 | -4.29% | | real/parser || | 3.315e9 | +1.96% | | real/pic || | 2.259e9 | -2.02% | | real/prolog || | 4.197e9 | +0.39% | | real/reptile || | 3.234e9 | -1.87% | | real/rsa || | 2.852e9 | -1.52% | | real/scs || | 2.870e9 | -2.91% | | real/smallpt || | 7.328e9 | +0.78% | | real/symalg || | 3.427e9 | +0.10% | | real/veritas || | 2.909e9 | +0.50% | | shootout/binary-trees || | 5.018e9 | -0.06% | | shootout/fannkuch-redux || | 1.014e10 | -2.68% | | shootout/fasta || | 2.439e9 | +1.45% | | shootout/k-nucleotide || | 3.488e9 | +4.66% | | shootout/n-body || | 2.098e9 | -0.03% | | shootout/pidigits || | 3.265e9 | -0.18% | | shootout/reverse-complement || | 3311908.000 | -6.15% | | shootout/spectral-norm || | 1.525e9 | +0.62% | | smp/callback001 || | 8.318e8 | +9.35% | | smp/callback002 || | 1.337e9 | +5.34% | | smp/chan || | 3.236e9 | -0.99% | | smp/sieve || | 7.368e8 | -0.27% | | smp/threads001 || | 2.874e9 | -0.77% | | smp/threads003 || | 1.841e9 | -0.36% | | smp/threads006 || | 1.144e9 | +2.09% | | smp/threads007 || | 3.534e9 | +3.85% | | spectral/ansi || | 1.973e9 | -2.41% | | spectral/atom || | 2.944e9 | -0.80% | | spectral/awards || | 5.452e9 | -11.68% | | spectral/banner || | 4.185e9 | -0.68% | | spectral/boyer || | 4.195e9 | -1.23% | | spectral/boyer2 || | 4.586e9 | -1.21% | | spectral/calendar || | 3.726e9 | -1.97% | | spectral/cichelli || | 4.325e9 | -0.26% | | spectral/circsim || | 5.746e9 | -0.23% | | spectral/clausify || | 3.735e9 | +0.10% | | spectral/constraints || | 5.202e9 | +2.10% | | spectral/cryptarithm1 || | 3.909e9 | -4.03% | | spectral/cryptarithm2 || | 3.759e9 | -1.27% | | spectral/cse || | 4.564e9 | -2.83% | | spectral/dom-lt || | 4.830e9 | -0.05% | | spectral/eliza || | 4.631e9 | -6.18% | | spectral/exact-reals || | 3.471e9 | -0.08% | | spectral/expert || | 4.020e9 | -1.27% | | spectral/fft2 || | 4.706e9 | -1.71% | | spectral/fibheaps || | 4.492e9 | +0.55% | | spectral/fish || | 4.004e9 | +3.76% | | spectral/gcd || | 3.413e9 | -2.86% | | spectral/hartel/comp_lab_zift || | 5.377e9 | +4.10% | | spectral/hartel/event || | 5.456e9 | -1.84% | | spectral/hartel/fft || | 1.732e9 | +0.20% | | spectral/hartel/genfft || | 5.124e9 | +2.82% | | spectral/hartel/ida || | 4.414e9 | +2.00% | | spectral/hartel/listcompr || | 3.458e9 | +3.84% | | spectral/hartel/listcopy || | 3.776e9 | -4.30% | | spectral/hartel/nucleic2 || | 4.137e9 | +4.49% | | spectral/hartel/parstof || | 4.609e9 | -0.54% | | spectral/hartel/sched || | 4.245e9 | -0.19% | | spectral/hartel/solid || | 3.587e9 | +1.04% | | spectral/hartel/transform || | 3.793e9 | +4.13% | | spectral/hartel/typecheck || | 4.627e9 | -1.51% | | spectral/hartel/wang || | 4.369e9 | -1.01% | | spectral/hartel/wave4main || | 4.844e9 | -5.68% | | spectral/integer || | 3.150e9 | -5.21% | | spectral/knights || | 4.198e9 | +21.03% | | spectral/lambda || | 3.534e9 | +1.90% | | spectral/last-piece || | 1.134e9 | +0.65% | | spectral/lcss || | 3.905e9 | -0.64% | | spectral/life || | 5.646e9 | -6.52% | | spectral/mandel || | 3.529e9 | -6.31% | | spectral/mandel2 || | 2.570e9 | -0.24% | | spectral/mate || | 5.761e9 | +4.42% | | spectral/minimax || | 4.569e9 | -1.24% | | spectral/multiplier || | 3.060e9 | +6.04% | | spectral/para || | 4.232e9 | +1.90% | | spectral/power || | 3.808e9 | -1.38% | | spectral/pretty || | 3403388.000 | -22.39% | | spectral/primetest || | 3.203e9 | -4.45% | | spectral/puzzle || | 4.362e9 | -0.34% | | spectral/rewrite || | 3.840e9 | +4.16% | | spectral/scc || | 3133857.000 | +1.57% | | spectral/simple || | 7.219e9 | -1.59% | | spectral/sorting || | 4.285e9 | -0.29% | | spectral/sphere || | 3.674e9 | -3.88% | | spectral/treejoin || | 4.910e9 | +0.19% | +===============================++==+=============+==================+ | geom mean || | -0.80% | | +-------------------------------++--+-------------+------------------+
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries