emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

elisp-benchmarks


From: Stefan Monnier
Subject: elisp-benchmarks
Date: Wed, 09 Feb 2022 17:19:28 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

Hi,

I just ran the elisp-benchmarks (with a repeat count of 10) on some
little-used server we have here and figured others might like to see the
result:

Before sympos (i.e. commit f57f28935a1f0c46776976dd497322a07d248f5f)

  | test               | non-gc avg (s) | gc avg (s) | gcs avg | tot avg (s) | 
tot avg err (s) |
  
|--------------------+----------------+------------+---------+-------------+-----------------|
  | bubble             |           6.75 |       8.75 |     433 |       15.50 |  
          0.03 |
  | bubble-no-cons     |          16.26 |       0.06 |       3 |       16.32 |  
          0.00 |
  | bytecomp           |           3.24 |       2.53 |     123 |        5.77 |  
          0.16 |
  | dhrystone          |          15.54 |       0.00 |       0 |       15.54 |  
          0.00 |
  | eieio              |           5.57 |       3.38 |     166 |        8.95 |  
          0.02 |
  | fibn               |           5.45 |       0.00 |       0 |        5.45 |  
          0.00 |
  | fibn-named-let     |           6.00 |       0.00 |       0 |        6.00 |  
          0.01 |
  | fibn-rec           |          11.11 |       0.00 |       0 |       11.11 |  
          0.01 |
  | fibn-tc            |           9.24 |       0.00 |       0 |        9.24 |  
          0.00 |
  | flet               |          18.50 |       0.00 |       0 |       18.50 |  
          0.01 |
  | inclist            |          18.11 |       0.00 |       0 |       18.11 |  
          0.01 |
  | inclist-type-hints |          18.11 |       0.00 |       0 |       18.11 |  
          0.01 |
  | listlen-tc         |           9.33 |       0.00 |       0 |        9.33 |  
          0.02 |
  | map-closure        |          14.49 |       0.00 |       0 |       14.49 |  
          0.01 |
  | nbody              |           5.98 |      16.34 |     791 |       22.32 |  
          0.06 |
  | pack-unpack        |           1.07 |       0.87 |      43 |        1.94 |  
          0.00 |
  | pack-unpack-old    |           3.29 |       1.76 |      87 |        5.06 |  
          0.01 |
  | pcase              |          20.28 |       0.00 |       0 |       20.28 |  
          0.00 |
  | pidigits           |          11.96 |      10.17 |     401 |       22.13 |  
          0.18 |
  | scroll             |           1.34 |       0.12 |       6 |        1.46 |  
          0.00 |
  | smie               |           3.06 |       0.95 |      46 |        4.00 |  
          0.01 |
  
|--------------------+----------------+------------+---------+-------------+-----------------|
  | total              |         204.67 |      44.94 |    2102 |      249.61 |  
          0.26 |

Right after sympos (i.e. commit df49e3a3ab4cddf1e3c0f5482c7fdd809d8a8884)

  | test               | non-gc avg (s) | gc avg (s) | gcs avg | tot avg (s) | 
tot avg err (s) |
  
|--------------------+----------------+------------+---------+-------------+-----------------|
  | bubble             |           6.39 |       9.09 |     449 |       15.48 |  
          0.04 |
  | bubble-no-cons     |          16.50 |       0.06 |       3 |       16.56 |  
          0.00 |
  | bytecomp           |           3.43 |       2.69 |     130 |        6.12 |  
          0.16 |
  | dhrystone          |          16.07 |       0.00 |       0 |       16.07 |  
          0.01 |
  | eieio              |           5.50 |       3.38 |     166 |        8.88 |  
          0.02 |
  | fibn               |           5.42 |       0.00 |       0 |        5.42 |  
          0.00 |
  | fibn-named-let     |           5.87 |       0.00 |       0 |        5.87 |  
          0.00 |
  | fibn-rec           |          11.27 |       0.00 |       0 |       11.27 |  
          0.01 |
  | fibn-tc            |           9.42 |       0.00 |       0 |        9.42 |  
          0.00 |
  | flet               |          19.65 |       0.00 |       0 |       19.65 |  
          0.01 |
  | inclist            |          19.43 |       0.00 |       0 |       19.43 |  
          0.00 |
  | inclist-type-hints |          19.43 |       0.00 |       0 |       19.43 |  
          0.00 |
  | listlen-tc         |           9.35 |       0.00 |       0 |        9.35 |  
          0.01 |
  | map-closure        |          14.83 |       0.00 |       0 |       14.83 |  
          0.05 |
  | nbody              |           5.78 |      16.38 |     789 |       22.15 |  
          0.07 |
  | pack-unpack        |           1.06 |       0.87 |      43 |        1.93 |  
          0.00 |
  | pack-unpack-old    |           3.32 |       1.77 |      86 |        5.09 |  
          0.01 |
  | pcase              |          17.65 |       0.00 |       0 |       17.65 |  
          0.00 |
  | pidigits           |          11.15 |      10.06 |     400 |       21.21 |  
          0.18 |
  | scroll             |           1.30 |       0.12 |       6 |        1.42 |  
          0.00 |
  | smie               |           3.11 |       0.95 |      46 |        4.06 |  
          0.00 |
  
|--------------------+----------------+------------+---------+-------------+-----------------|
  | total              |         205.92 |      45.37 |    2122 |      251.29 |  
          0.26 |

>From master (i.e. commit d41a5e7e33067eb38b147ee2f8a1615f6faed7a4)

  | test               | non-gc avg (s) | gc avg (s) | gcs avg | tot avg (s) | 
tot avg err (s) |
  
|--------------------+----------------+------------+---------+-------------+-----------------|
  | bubble             |           5.00 |       9.15 |     433 |       14.15 |  
          0.07 |
  | bubble-no-cons     |          13.43 |       0.06 |       3 |       13.49 |  
          0.00 |
  | bytecomp           |           3.22 |       2.65 |     123 |        5.87 |  
          0.16 |
  | dhrystone          |          12.37 |       0.00 |       0 |       12.37 |  
          0.03 |
  | eieio              |           4.65 |       3.40 |     160 |        8.05 |  
          0.06 |
  | fibn               |           3.74 |       0.00 |       0 |        3.74 |  
          0.00 |
  | fibn-named-let     |           4.10 |       0.00 |       0 |        4.10 |  
          0.00 |
  | fibn-rec           |           7.33 |       0.00 |       0 |        7.33 |  
          0.00 |
  | fibn-tc            |           5.58 |       0.00 |       0 |        5.58 |  
          0.00 |
  | flet               |          12.55 |       0.00 |       0 |       12.55 |  
          0.01 |
  | inclist            |          17.67 |       0.00 |       0 |       17.67 |  
          0.01 |
  | inclist-type-hints |          17.67 |       0.00 |       0 |       17.67 |  
          0.01 |
  | listlen-tc         |           6.84 |       0.00 |       0 |        6.84 |  
          0.01 |
  | map-closure        |          10.06 |       0.00 |       0 |       10.06 |  
          0.00 |
  | nbody              |           5.08 |      16.51 |     762 |       21.59 |  
          0.04 |
  | pack-unpack        |           0.86 |       0.88 |      41 |        1.74 |  
          0.01 |
  | pack-unpack-old    |           2.99 |       1.78 |      83 |        4.77 |  
          0.02 |
  | pcase              |          17.36 |       0.00 |       0 |       17.36 |  
          0.00 |
  | pidigits           |          10.32 |       9.97 |     386 |       20.28 |  
          0.34 |
  | scroll             |           1.39 |       0.13 |       6 |        1.52 |  
          0.00 |
  | smie               |           3.10 |       0.95 |      44 |        4.06 |  
          0.02 |
  
|--------------------+----------------+------------+---------+-------------+-----------------|
  | total              |         165.30 |      45.49 |    2044 |      210.78 |  
          0.39 |

`bytecomp`, `scroll`, and `smie` are benchmarks I added yesterday which
are not microbenchmarks and thus hopefully reflect "real use".

This was all with the byte-compiler and not the native compiler.

These result suggest that the symbol-with-pos changes don't introduce
a significant slowdown, even for the bytecompiler.

And we see that Matthias's recent improvements to the bytecode
interpreter do make a quite significant difference on several of those
microbenchmarks ;-), and also on the bytecompiler benchmark (offsetting
the extra work needed for the symbol-with-positions) tho they don't make
much of a difference when it comes to scrolling(with-jit-lock) or when
it comes to reindenting code with SMIE :-)

The >10% slowdown recently seen on the test suite is still a mystery
waiting for someone to figure out what's going on.

BTW, I think one thing is clear when I look at those benchmarks:
Emacs's GC is not good enough.


        Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]