[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Re: Bignum performance (was: Shrinking the C core)
From: |
Emanuel Berg |
Subject: |
Re: [PATCH] Re: Bignum performance (was: Shrinking the C core) |
Date: |
Fri, 11 Aug 2023 21:50:51 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Ihor Radchenko wrote:
>> See if you can do my original test, which was 1-3 Elisp,
>> byte-compiled Elisp, and natively compiled Elisp, and the
>> Common Lisp execution (on your computer), if you'd like.
>
> As you wish:
>
> $ ~/Git/emacs/src/emacs -Q -batch -l /tmp/fib.el [5.783 s]
> $ ~/Git/emacs/src/emacs -Q -batch -l /tmp/fib.elc [1.961 s]
> $ ~/Git/emacs/src/emacs -Q -batch -l /tmp/fib.eln [1.901 s]
> $ SBCL_HOME=/usr/lib64/sbcl sbcl --load /tmp/fib.cl [0.007 s]
>
> without the patch (on my system)
>
> $ ~/Git/emacs/src/emacs -Q -batch -l /tmp/fib.el [6.546 s]
> $ ~/Git/emacs/src/emacs -Q -batch -l /tmp/fib.elc [2.498 s]
> $ ~/Git/emacs/src/emacs -Q -batch -l /tmp/fib.eln [2.518 s]
The stats seem to speak one language ...
> Also, the patch gives improvements for more than just
> bignums
> | test | non-gc avg (s) | gc avg (s) | gcs avg | tot avg (s)
> | tot avg err (s) |
>
> |--------------------+----------------+------------+---------+-------------+-----------------|
> | bubble | 0.70 | 0.06 | 1 | 0.76 | 0.07 |
> | bubble-no-cons | 1.17 | 0.00 | 0 | 1.17 | 0.02 |
> | bytecomp | 1.74 | 0.29 | 13 | 2.03 | 0.12 |
> | dhrystone | 2.30 | 0.00 | 0 | 2.30 | 0.07 |
> | eieio | 1.25 | 0.13 | 7 | 1.38 | 0.03 |
> | fibn | 0.00 | 0.00 | 0 | 0.00 | 0.00 |
> | fibn-named-let | 1.53 | 0.00 | 0 | 1.53 | 0.03 |
> | fibn-rec | 0.00 | 0.00 | 0 | 0.00 | 0.00 |
> | fibn-tc | 0.00 | 0.00 | 0 | 0.00 | 0.00 |
> | flet | 1.48 | 0.00 | 0 | 1.48 | 0.04 |
> | inclist | 1.07 | 0.00 | 0 | 1.07 | 0.02 |
> | inclist-type-hints | 1.00 | 0.00 | 0 | 1.00 | 0.07 |
> | listlen-tc | 0.13 | 0.00 | 0 | 0.13 | 0.03 |
> | map-closure | 5.26 | 0.00 | 0 | 5.26 | 0.09 |
> | nbody | 1.61 | 0.17 | 1 | 1.78 | 0.06 |
> | pack-unpack | 0.31 | 0.02 | 1 | 0.33 | 0.00 |
> | pack-unpack-old | 0.50 | 0.05 | 3 | 0.55 | 0.02 |
> | pcase | 1.85 | 0.00 | 0 | 1.85 | 0.05 |
> | pidigits | 4.41 | 0.96 | 17 | 5.37 | 0.13 |
> | scroll | 0.64 | 0.00 | 0 | 0.64 | 0.01 |
> | smie | 1.59 | 0.04 | 2 | 1.63 | 0.03 |
>
> |--------------------+----------------+------------+---------+-------------+-----------------|
> | total | 28.54 | 1.72 | 45 | 30.26 | 0.26 |
>
> (after the patch)
> | test | non-gc avg (s) | gc avg (s) | gcs avg | tot avg (s)
> | tot avg err (s) |
>
> |--------------------+----------------+------------+---------+-------------+-----------------|
> | bubble | 0.68 | 0.05 | 1 | 0.73 | 0.04 |
> | bubble-no-cons | 1.00 | 0.00 | 0 | 1.00 | 0.04 |
> | bytecomp | 1.60 | 0.23 | 13 | 1.82 | 0.16 |
> | dhrystone | 2.03 | 0.00 | 0 | 2.03 | 0.05 |
> | eieio | 1.08 | 0.12 | 7 | 1.20 | 0.07 |
> | fibn | 0.00 | 0.00 | 0 | 0.00 | 0.00 |
> | fibn-named-let | 1.44 | 0.00 | 0 | 1.44 | 0.12 |
> | fibn-rec | 0.00 | 0.00 | 0 | 0.00 | 0.00 |
> | fibn-tc | 0.00 | 0.00 | 0 | 0.00 | 0.00 |
> | flet | 1.36 | 0.00 | 0 | 1.36 | 0.09 |
> | inclist | 1.00 | 0.00 | 0 | 1.00 | 0.00 |
> | inclist-type-hints | 1.00 | 0.00 | 0 | 1.00 | 0.07 |
> | listlen-tc | 0.11 | 0.00 | 0 | 0.11 | 0.02 |
> | map-closure | 4.91 | 0.00 | 0 | 4.91 | 0.12 |
> | nbody | 1.47 | 0.17 | 1 | 1.64 | 0.08 |
> | pack-unpack | 0.29 | 0.02 | 1 | 0.31 | 0.01 |
> | pack-unpack-old | 0.43 | 0.05 | 3 | 0.48 | 0.01 |
> | pcase | 1.84 | 0.00 | 0 | 1.84 | 0.07 |
> | pidigits | 3.16 | 0.94 | 17 | 4.11 | 0.10 |
> | scroll | 0.58 | 0.00 | 0 | 0.58 | 0.00 |
> | smie | 1.40 | 0.04 | 2 | 1.44 | 0.06 |
>
> |--------------------+----------------+------------+---------+-------------+-----------------|
> | total | 25.38 | 1.62 | 45 | 27.00 | 0.32 |
>
> About ~10% improvement, with each individual benchmark being faster.
Ten percent? We take it :)
> Note how fibn test takes 0.00 seconds. It is limited to
> fixnum range.
What does that say/mean?
--
underground experts united
https://dataswamp.org/~incal
- Re: Shrinking the C core, (continued)
- Re: Shrinking the C core, tomas, 2023/08/11
- Re: Shrinking the C core, Eli Zaretskii, 2023/08/11
- Re: Shrinking the C core, Emanuel Berg, 2023/08/11
- Bignum performance (was: Shrinking the C core), Ihor Radchenko, 2023/08/11
- Re: Bignum performance (was: Shrinking the C core), Emanuel Berg, 2023/08/11
- Re: Bignum performance (was: Shrinking the C core), Ihor Radchenko, 2023/08/11
- Re: Bignum performance (was: Shrinking the C core), Emanuel Berg, 2023/08/11
- [PATCH] Re: Bignum performance (was: Shrinking the C core), Ihor Radchenko, 2023/08/11
- Re: [PATCH] Re: Bignum performance (was: Shrinking the C core), Emanuel Berg, 2023/08/11
- Re: [PATCH] Re: Bignum performance (was: Shrinking the C core), Ihor Radchenko, 2023/08/11
- Re: [PATCH] Re: Bignum performance (was: Shrinking the C core),
Emanuel Berg <=
- Re: [PATCH] Re: Bignum performance (was: Shrinking the C core), Ihor Radchenko, 2023/08/12
- Re: [PATCH] Re: Bignum performance (was: Shrinking the C core), Emanuel Berg, 2023/08/12
- Re: [PATCH] Re: Bignum performance (was: Shrinking the C core), Ihor Radchenko, 2023/08/13
- Re: [PATCH] Re: Bignum performance (was: Shrinking the C core), Emanuel Berg, 2023/08/13
- Re: [PATCH] Re: Bignum performance (was: Shrinking the C core), Ihor Radchenko, 2023/08/13
- Re: [PATCH] Re: Bignum performance (was: Shrinking the C core), Emanuel Berg, 2023/08/13
- Re: [PATCH] Re: Bignum performance, Po Lu, 2023/08/13
- Re: [PATCH] Re: Bignum performance, Ihor Radchenko, 2023/08/14
- Re: [PATCH] Re: Bignum performance, Po Lu, 2023/08/14
- Re: [PATCH] Re: Bignum performance, Ihor Radchenko, 2023/08/14