[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Time to merge scratch/correct-warning-pos into master, perhaps?
From: |
Alan Mackenzie |
Subject: |
Re: Time to merge scratch/correct-warning-pos into master, perhaps? |
Date: |
Sat, 19 Feb 2022 16:42:07 +0000 |
Hello, Eli.
On Sun, Feb 06, 2022 at 20:39:14 +0200, Eli Zaretskii wrote:
> > Date: Sun, 6 Feb 2022 18:09:30 +0000
> > Cc: gregory@heytings.org, monnier@iro.umontreal.ca, mattiase@acm.org,
> > larsi@gnus.org, emacs-devel@gnu.org
> > From: Alan Mackenzie <acm@muc.de>
> > > > > Where are the numbers that show how much slower is the current EQ, for
> > > > > the case of EQ and not-EQ objects?
> > > > We don't have any such numbers. Is it even possible to measure this?
> > > > On
> > > > earlier processors, we could have just counted up processor cycles used
> > > > for each instruction, but not any more.
> > > Yes, it's possible: use perf.
> > I've installed the user side part of perf on my machine. On reading the
> > tutorial (which is very difficult), it seems perf acts like a super
> > accurate benchmarking program, which measures program runs.
> > Maybe I misunderstand what you meant - but I can't see how perf is able
> > to report the cycles, etc., taken by a single execution of an instance of
> > EQ.
> > What exactly do we want to measure, here?
> Perf is capable of showing profiles at a source line granularity.
> Since the relation of parts of EQ to equal and non-equal objects is
> quite clear, the profile produced by perf can be easily interpreted as
> pertaining to either of these two possibilities. By comparing the
> profiles with the old and the new definitions of EQ you should be able
> to measure the slowdown we are interested in.
After building each version with CFLAGS='-O2 -g3' and
--with-native-compilation, I've run
$ perf record -e cpu-clock make check
followed by
$ perf report -i perf.data --tui
on both old and new EQ versions of Emacs.
On the old version, there is no sign of EQ. I searched with `/' at the
top level of perf report, and found only other functions with "EQ" in the
name in two non-Emacs libraries.
On the new version, EQ appears just twice when I type `/' EQ RET. The
total CPU usage appears to be around 0.01%. In fact the screen looks
like this:
Samples: 576K of event 'cpu-clock:u', Event count (approx.): 144023250000
Overhead Comma Shared Object Symbol
0.01% emacs emacs [.] EQ
0.00% hg libpython3.9.so.1.0 [.] _PyUnicode_EQ
0.00% emacs emacs [.] EQ
Typing RET on one of the two EQ lines, then RET again, displays
percentages taken by the various instructions in that particular
expansion of EQ.
I think part of the problem is that EQ isn't in any particular place in
Emacs. In the C source it occurs over 2,700 times. Is there any way to
get perf to amalgamate the different occurrences of EQ?
I haven't got any useful information out of the exercise, so far. I
can't help feeling that I'm missing something. Is there anything I ought
to be doing that I've not yet done?
> Btw, unlike what you said up-thread, I don't recommend comparing the
> version of Emacs before the merge of the branch with today's
> codebase. Instead, I suggest to compile two versions of the same
> Emacs codebase, one with the old and simple definition of EQ, the
> other with the definition we use now on master. This should make the
> comparison easier, since the only difference will be how EQ is
> defined.
--
Alan Mackenzie (Nuremberg, Germany).
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, (continued)
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Stefan Monnier, 2022/02/04
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Stefan Monnier, 2022/02/04
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Eli Zaretskii, 2022/02/05
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Stefan Monnier, 2022/02/05
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Eli Zaretskii, 2022/02/05
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Eli Zaretskii, 2022/02/05
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Alan Mackenzie, 2022/02/06
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Eli Zaretskii, 2022/02/06
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Alan Mackenzie, 2022/02/06
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Eli Zaretskii, 2022/02/06
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?,
Alan Mackenzie <=
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Eli Zaretskii, 2022/02/19
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, David Engster, 2022/02/19
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Alan Mackenzie, 2022/02/19
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, David Engster, 2022/02/20
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Alan Mackenzie, 2022/02/20
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Stefan Monnier, 2022/02/20
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Alan Mackenzie, 2022/02/20
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Stefan Monnier, 2022/02/20
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Óscar Fuentes, 2022/02/20
- Re: Time to merge scratch/correct-warning-pos into master, perhaps?, Eli Zaretskii, 2022/02/20