* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
[not found] ` <wlvcju737a.wl%mituharu@math.s.chiba-u.ac.jp>
@ 2012-05-23 7:24 ` John Wiegley
2012-05-23 7:35 ` Andreas Schwab
` (2 more replies)
0 siblings, 3 replies; 15+ messages in thread
From: John Wiegley @ 2012-05-23 7:24 UTC (permalink / raw)
To: YAMAMOTO Mitsuharu; +Cc: bug-cc-mode, mituharu+bug-gnu-emacs-mac, 11545
>>>>> YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> writes:
> With the Time Profiler in Instrument.app, I found that fontification
> of CC Mode in Emacs 24 is much heavier and causes frequent GCs than
> that in Emacs 23. Please try the following:
>
> 1. Start Emacs 24 Mac port with -Q (alternatively, pressing the
> shift key.)
> 2. M-x load-file PREFIX/share/emacs/23.4/lisp/progmodes/cc-fonts.elc
> RTE.
> 3. Replay scrolling a large C++ file.
>
> I'm not sure if this slowdown is intended or expected.
Indeed, this makes the speed situation much better on Emacs 24.0.97.
- When I scroll a large C++ file in Emacs 24.0.97 the first time, the
performance is very choppy, even on a powerful Mac Pro machine.
There are moments toward the end of the file when I can actually count out
10 seconds or so before it moves on to the next page. The file is 17,983
lines long, consisting entirely of type declarations, enum, #define's and
prototypes.
- If I press M-<, go back to the top of the file, and then scroll to the
bottom again, there are basically no pauses.
- If I delete the buffer and re-open the file, scrolling is the same as
before.
- If I delete the buffer and load cc-fonts.elc from Emacs 23.4, scrolling
performance is *much* better. It is less choppy, and although it still
shows one long pause toward the end (garbage collection?), that's it.
- As before, going to the top with M-< and re-scrolling shows perfect speed,
no lag whatsoever; and killing the buffer and re-scrolling shows the same
faster performance as before, with less lag (but still a little bit).
The strange thing is, cc-fonts.el.gz is identical between Emacs 23.4 and Emacs
24.0.97! Only the .elc's differ. Have we found a byte-compilation issue in
Emacs 24?
John
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2012-05-23 7:24 ` bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code John Wiegley
@ 2012-05-23 7:35 ` Andreas Schwab
2012-05-23 7:51 ` Glenn Morris
2012-05-28 23:05 ` John Wiegley
2 siblings, 0 replies; 15+ messages in thread
From: Andreas Schwab @ 2012-05-23 7:35 UTC (permalink / raw)
To: John Wiegley; +Cc: bug-cc-mode, mituharu+bug-gnu-emacs-mac, 11545
John Wiegley <jwiegley@gmail.com> writes:
> The strange thing is, cc-fonts.el.gz is identical between Emacs 23.4 and Emacs
> 24.0.97! Only the .elc's differ.
Do they also differ semantically?
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2012-05-23 7:24 ` bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code John Wiegley
2012-05-23 7:35 ` Andreas Schwab
@ 2012-05-23 7:51 ` Glenn Morris
2012-05-23 8:15 ` Glenn Morris
2012-05-28 23:05 ` John Wiegley
2 siblings, 1 reply; 15+ messages in thread
From: Glenn Morris @ 2012-05-23 7:51 UTC (permalink / raw)
To: John Wiegley; +Cc: mituharu+bug-gnu-emacs-mac, 11545
John Wiegley wrote:
> The strange thing is, cc-fonts.el.gz is identical between Emacs 23.4
> and Emacs 24.0.97!
I see hundreds of lines of differences between the emacs-23 and emacs-24
branch versions of cc-fonts.
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2012-05-23 7:51 ` Glenn Morris
@ 2012-05-23 8:15 ` Glenn Morris
2012-05-23 10:28 ` John Wiegley
0 siblings, 1 reply; 15+ messages in thread
From: Glenn Morris @ 2012-05-23 8:15 UTC (permalink / raw)
To: John Wiegley; +Cc: mituharu+bug-gnu-emacs-mac, 11545
PS The context for this bug report is missing; but I imagine the first
thing Alan will ask for is an example that shows how to reproduce the
problem.
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2012-05-23 8:15 ` Glenn Morris
@ 2012-05-23 10:28 ` John Wiegley
2012-05-23 16:16 ` Eli Zaretskii
2012-05-25 21:45 ` Alan Mackenzie
0 siblings, 2 replies; 15+ messages in thread
From: John Wiegley @ 2012-05-23 10:28 UTC (permalink / raw)
To: Glenn Morris; +Cc: mituharu+bug-gnu-emacs-mac, 11545
>>>>> Glenn Morris <rgm@gnu.org> writes:
> I see hundreds of lines of differences between the emacs-23 and emacs-24
> branch versions of cc-fonts.
Sorry, tool failure here. Now I'm seeing:
660 insertions(+), 243 deletions(-)
> PS The context for this bug report is missing; but I imagine the first thing
> Alan will ask for is an example that shows how to reproduce the problem.
Start either Emacs with -Q -nw. Open a largish C++ file. Hold down C-v. On
my laptop the lagginess was quite obvious, on my desktop a little less so.
Thanks, John
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2012-05-23 10:28 ` John Wiegley
@ 2012-05-23 16:16 ` Eli Zaretskii
2012-05-23 22:27 ` John Wiegley
2012-05-25 21:45 ` Alan Mackenzie
1 sibling, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2012-05-23 16:16 UTC (permalink / raw)
To: John Wiegley; +Cc: mituharu+bug-gnu-emacs-mac, 11545
> Date: Wed, 23 May 2012 05:28:24 -0500
> Cc: mituharu+bug-gnu-emacs-mac@math.s.chiba-u.ac.jp, 11545@debbugs.gnu.org
>
> Start either Emacs with -Q -nw. Open a largish C++ file. Hold down C-v. On
> my laptop the lagginess was quite obvious, on my desktop a little less so.
Does the sluggishness go away if, right after starting Emacs, you type
"M-x global-font-lock-mode RET" to disable font-lock, and _then_ visit
that largish C++ file?
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2012-05-23 16:16 ` Eli Zaretskii
@ 2012-05-23 22:27 ` John Wiegley
0 siblings, 0 replies; 15+ messages in thread
From: John Wiegley @ 2012-05-23 22:27 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: mituharu+bug-gnu-emacs-mac, 11545
>>>>> Eli Zaretskii <eliz@gnu.org> writes:
>> Start either Emacs with -Q -nw. Open a largish C++ file. Hold down C-v.
>> On my laptop the lagginess was quite obvious, on my desktop a little less
>> so.
> Does the sluggishness go away if, right after starting Emacs, you type "M-x
> global-font-lock-mode RET" to disable font-lock, and _then_ visit that
> largish C++ file?
Yes. With font-lock off, it is buttery smooth.
So it looks like either the new cc-mode, or Emacs 24, is causing lots of
GC'ing when lazy fontifying a large C++ header. And in fact, this header is
mostly C, so there's nothing complex in it like templates to throw cc-mode off
the mark.
John
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2012-05-23 10:28 ` John Wiegley
2012-05-23 16:16 ` Eli Zaretskii
@ 2012-05-25 21:45 ` Alan Mackenzie
2012-05-26 7:46 ` John Wiegley
1 sibling, 1 reply; 15+ messages in thread
From: Alan Mackenzie @ 2012-05-25 21:45 UTC (permalink / raw)
To: John Wiegley; +Cc: mituharu+bug-gnu-emacs-mac, 11545
Hello John,
On Wed, May 23, 2012 at 05:28:24AM -0500, John Wiegley wrote:
> >>>>> Glenn Morris <rgm@gnu.org> writes:
> > I see hundreds of lines of differences between the emacs-23 and emacs-24
> > branch versions of cc-fonts.
> Sorry, tool failure here. Now I'm seeing:
> 660 insertions(+), 243 deletions(-)
> > PS The context for this bug report is missing; but I imagine the first thing
> > Alan will ask for is an example that shows how to reproduce the problem.
> Start either Emacs with -Q -nw. Open a largish C++ file. Hold down C-v. On
> my laptop the lagginess was quite obvious, on my desktop a little less so.
This has been the case for some while, as you have said.
The offending function is probably c-font-lock-enclosing-decls, a
relatively new function. c-f-l-e-decls solves the former problem of
misfontification when a jit-lock chunk started within (mainly) a
struct/enum/union/class/... and lacked the context to fontify correctly.
An example of this happening was the first enum construct in
.../emacs/src/gnutls.h.
Could you possibly check this is the case in your file.c++ using elp.
Here's a quick recipe in case you haven't used it before:
[ M-x elp-instrument-package <ret> c- <ret>.
Scroll with C-v, either once or an arbitrary number of times.
M-x elp-results.]
The cost of this correct fontification is the "slight" sluggishness being
seen here. It is likely possible to optimise this function somewhat,
though probably it's now too late for Emacs 24.1.
> Thanks, John
--
Alan Mackenzie (Nuremberg, Germany).
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2012-05-25 21:45 ` Alan Mackenzie
@ 2012-05-26 7:46 ` John Wiegley
0 siblings, 0 replies; 15+ messages in thread
From: John Wiegley @ 2012-05-26 7:46 UTC (permalink / raw)
To: Alan Mackenzie; +Cc: mituharu+bug-gnu-emacs-mac, 11545
>>>>> Alan Mackenzie <acm@muc.de> writes:
> Could you possibly check this is the case in your file.c++ using elp.
> Here's a quick recipe in case you haven't used it before: [ M-x
> elp-instrument-package <ret> c- <ret>. Scroll with C-v, either once or an
> arbitrary number of times. M-x elp-results.]
Results attached below.
> The cost of this correct fontification is the "slight" sluggishness being
> seen here. It is likely possible to optimise this function somewhat, though
> probably it's now too late for Emacs 24.1.
I'd rather forgo the correctness for the speed, since cc-mode has never been
100% correct, but it's always been correct enough.
John
Function Name Call Count Elapsed Time Average Time
c-font-lock-fontify-region 1529 31.313269999 0.0204795748
c-beginning-of-decl-1 3657 11.680622999 0.0031940451
c-font-lock-declarations 1529 11.070964000 0.0072406566
c-find-decl-spots 1529 11.035531000 0.0072174826
c-context-set-fl-decl-start 1529 10.549607 0.0068996775
c-set-fl-decl-start 1529 10.542452999 0.0068949986
c-beginning-of-statement-1 3910 9.8793279999 0.0025266823
c-backward-sws 123582 8.8908430000 7.194...e-05
c-crosses-statement-barrier-p 15967 7.1756169999 0.0004494029
c-parse-state 14667 6.1785950000 0.0004212582
c-parse-state-1 14667 5.6588790000 0.0003858238
c-font-lock-enclosing-decls 1529 4.462361 0.0029184833
c-determine-limit 5498 3.4111050000 0.0006204265
c-append-to-state-cache 14467 2.5331440000 0.0001750980
c-remove-stale-state-cache 14425 2.0322649999 0.0001408849
c-forward-decl-or-cast-1 6632 1.9189249999 0.0002893433
c-beginning-of-macro 164245 1.8161729999 1.105...e-05
c-forward-type 18312 1.5136799999 8.266...e-05
c-in-knr-argdecl 3367 1.5124650000 0.0004492025
c-syntactic-skip-backward 3882 1.3911049999 0.0003583475
c-font-lock-enum-tail 1529 1.1747370000 0.0007683041
c-font-lock-complex-decl-prepare 1529 0.786506 0.0005143924
c-backward-token-2 21271 0.7062790000 3.320...e-05
c-literal-limits 25371 0.7047289999 2.777...e-05
c-at-macro-vsemi-p 30271 0.7038709999 2.325...e-05
c-font-lock-declarators 3723 0.6608859999 0.0001775143
c-forward-name 18056 0.5404579999 2.993...e-05
c-parse-state-get-strategy 14667 0.4485610000 3.058...e-05
c-cheap-inside-bracelist-p 5015 0.4087189999 8.149...e-05
c-forward-sws 60915 0.3506809999 5.756...e-06
c-syntactic-re-search-forward 7741 0.2931619999 3.787...e-05
c-syntactic-content 10849 0.2439560000 2.248...e-05
c-forward-token-2 5974 0.2161999999 3.619...e-05
c-add-type 3181 0.1633079999 5.133...e-05
c-append-lower-brace-pair-to-state-cache 153 0.1180970000 0.0007718758
c-state-semi-safe-place 7045 0.1104430000 1.567...e-05
c-remove-stale-state-cache-backwards 242 0.0868989999 0.0003590867
c-beginning-of-current-token 8514 0.0621019999 7.294...e-06
c-looking-at-inexpr-block 342 0.0573979999 0.0001678304
c-state-get-min-scan-pos 14865 0.0395270000 2.659...e-06
c-get-fallback-scan-pos 106 0.039258 0.0003703584
c-forward-label 274 0.0353939999 0.0001291751
c-get-cache-scan-pos 14667 0.0347800000 2.371...e-06
c-beginning-of-syntax 250 0.0315929999 0.0001263719
c-font-lock-doc-comments 3058 0.0247469999 8.092...e-06
c-safe-position 4286 0.0241799999 5.641...e-06
c-state-literal-at 267 0.0240109999 8.992...e-05
c-on-identifier 694 0.0237040000 3.415...e-05
c-after-conditional 79 0.0234840000 0.0002972658
c-syntactic-end-of-macro 684 0.0193390000 2.827...e-05
c-forward-annotation 6632 0.0187899999 2.833...e-06
c-skip-comments-and-strings 7979 0.0155589999 1.949...e-06
c-punctuation-in 636 0.0123149999 1.936...e-05
c-forward-keyword-clause 831 0.0096369999 1.159...e-05
c-fontify-recorded-types-and-refs 6869 0.0094569999 1.376...e-06
c-state-safe-place 267 0.0069390000 2.598...e-05
c-end-of-macro 2442 0.0062260000 2.549...e-06
c-font-lock-invalid-string 1031 0.0052879999 5.129...e-06
c-end-of-current-token 1207 0.0048019999 3.978...e-06
c-state-balance-parens-backwards 202 0.00426 2.108...e-05
c-most-enclosing-brace 1789 0.0022139999 1.237...e-06
c-renarrow-state-cache 10 0.0010699999 0.0001069999
c-state-mark-point-min-literal 10 0.001004 0.0001003999
c-forward-single-comment 37 0.0004699999 1.270...e-05
c-at-toplevel-p 2 0.00028 0.00014
c-forward-to-cpp-define-body 8 8.099...e-05 1.012...e-05
c-search-uplist-for-classkey 2 1.2e-05 6e-06
c-leave-cc-mode-mode 3 4.999...e-06 1.666...e-06
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2012-05-23 7:24 ` bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code John Wiegley
2012-05-23 7:35 ` Andreas Schwab
2012-05-23 7:51 ` Glenn Morris
@ 2012-05-28 23:05 ` John Wiegley
2012-06-02 21:20 ` Alan Mackenzie
2 siblings, 1 reply; 15+ messages in thread
From: John Wiegley @ 2012-05-28 23:05 UTC (permalink / raw)
To: YAMAMOTO Mitsuharu; +Cc: mituharu+bug-gnu-emacs-mac, 11545
>>>>> John Wiegley <jwiegley@gmail.com> writes:
>>>>>> YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> writes:
>> With the Time Profiler in Instrument.app, I found that fontification
>> of CC Mode in Emacs 24 is much heavier and causes frequent GCs than
>> that in Emacs 23. Please try the following:
>>
>> 1. Start Emacs 24 Mac port with -Q (alternatively, pressing the
>> shift key.)
>> 2. M-x load-file PREFIX/share/emacs/23.4/lisp/progmodes/cc-fonts.elc
>> RTE.
>> 3. Replay scrolling a large C++ file.
>>
>> I'm not sure if this slowdown is intended or expected.
>
> Indeed, this makes the speed situation much better on Emacs 24.0.97.
I can now confirm that loading CC-Mode 5.32.3 into Emacs 23.4 causes the
identical speed issues that I was seeing with Emacs 24.0.97, so this is a
performance issue in the latest CC-Mode, not a bug in Emacs 24 or with
Mac-Port Emacs.
To the CC-Mode maintainers: is there a way to disable the slower, "more
correct" mode in the latest CC-Mode, and go back to the entirely sufficient
(for me) mode of previous versions?
Thanks,
John
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2012-05-28 23:05 ` John Wiegley
@ 2012-06-02 21:20 ` Alan Mackenzie
2012-06-11 13:31 ` bug#11545: " John Wiegley
2019-11-01 18:40 ` Stefan Kangas
0 siblings, 2 replies; 15+ messages in thread
From: Alan Mackenzie @ 2012-06-02 21:20 UTC (permalink / raw)
To: John Wiegley
Cc: bug-cc-mode, bug-gnu-emacs, mituharu+bug-gnu-emacs-mac,
YAMAMOTO Mitsuharu
Hello, John.
On Mon, May 28, 2012 at 06:05:15PM -0500, John Wiegley wrote:
> >>>>> John Wiegley <jwiegley@gmail.com> writes:
> >>>>>> YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> writes:
> >> With the Time Profiler in Instrument.app, I found that fontification
> >> of CC Mode in Emacs 24 is much heavier and causes frequent GCs than
> >> that in Emacs 23. Please try the following:
> >> 1. Start Emacs 24 Mac port with -Q (alternatively, pressing the
> >> shift key.)
> >> 2. M-x load-file PREFIX/share/emacs/23.4/lisp/progmodes/cc-fonts.elc
> >> RTE.
> >> 3. Replay scrolling a large C++ file.
> >> I'm not sure if this slowdown is intended or expected.
> > Indeed, this makes the speed situation much better on Emacs 24.0.97.
> I can now confirm that loading CC-Mode 5.32.3 into Emacs 23.4 causes
> the identical speed issues that I was seeing with Emacs 24.0.97, so
> this is a performance issue in the latest CC-Mode, not a bug in Emacs
> 24 or with Mac-Port Emacs.
> To the CC-Mode maintainers: is there a way to disable the slower, "more
> correct" mode in the latest CC-Mode, and go back to the entirely
> sufficient (for me) mode of previous versions?
Not as such, no. The only workaround at the moment is to use a
"pre-correct" version of CC Mode in place of an up to date one.
I've just done a binary chop on CC Mode versions, and it seems the latest
version before (?the first of) these enhancements was the one created by
this (mercurial) changeset (the repository can be downloaded from
<http://cc-mode.sourceforge.net>):
changeset: 5109:981fa4f0270c
parent: 5107:bd4013c5633b
user: acmacm
date: Wed Sep 15 17:47:52 2010 +0000
files: cc-engine.el
description:
(c-forward-<>-arglist-recur): Fix an infinite recursion.
To undo these changes would be difficult, since several later
enhancements and bug fixes are based on the new code. I'll see if I can
find some way of optimising the offending code - most of the time it's
doing expensive checks and finding nothing.
Anyhow, I've got the problem flagged as a bug now. Thanks again for
reporting it.
> Thanks,
> John
--
Alan Mackenzie (Nuremberg, Germany).
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2012-06-02 21:20 ` Alan Mackenzie
@ 2012-06-11 13:31 ` John Wiegley
2019-11-01 18:40 ` Stefan Kangas
1 sibling, 0 replies; 15+ messages in thread
From: John Wiegley @ 2012-06-11 13:31 UTC (permalink / raw)
To: Alan Mackenzie; +Cc: mituharu+bug-gnu-emacs-mac, 11545
>>>>> Alan Mackenzie <acm@muc.de> writes:
>> To the CC-Mode maintainers: is there a way to disable the slower, "more
>> correct" mode in the latest CC-Mode, and go back to the entirely sufficient
>> (for me) mode of previous versions?
> Not as such, no. The only workaround at the moment is to use a
> "pre-correct" version of CC Mode in place of an up to date one.
Ok, I've done that (am now using the version of cc-mode from 23.4 in my 24.1
Emacs, and everything is super-snappy again).
> Anyhow, I've got the problem flagged as a bug now. Thanks again for
> reporting it.
Thanks! Just FYI: This doesn't just make scrolling laggy. I have some long C
files which, if I add a statement that breaks up the fontification (for
example, I'm writing code that isn't yet valid), the buffer slows down to the
point that it takes up to 20 seconds for Emacs to register each keypress! The
old cc-mode doesn't have this problem at all.
Thanks again,
John
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2012-06-02 21:20 ` Alan Mackenzie
2012-06-11 13:31 ` bug#11545: " John Wiegley
@ 2019-11-01 18:40 ` Stefan Kangas
2019-11-02 10:59 ` Alan Mackenzie
1 sibling, 1 reply; 15+ messages in thread
From: Stefan Kangas @ 2019-11-01 18:40 UTC (permalink / raw)
To: Alan Mackenzie; +Cc: John Wiegley, 11545
Hi Alan,
Alan Mackenzie <acm@muc.de> writes:
> On Mon, May 28, 2012 at 06:05:15PM -0500, John Wiegley wrote:
>> >>>>> John Wiegley <jwiegley@gmail.com> writes:
>
>> >>>>>> YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> writes:
>> >> With the Time Profiler in Instrument.app, I found that fontification
>> >> of CC Mode in Emacs 24 is much heavier and causes frequent GCs than
>> >> that in Emacs 23. Please try the following:
>
>> >> 1. Start Emacs 24 Mac port with -Q (alternatively, pressing the
>> >> shift key.)
>> >> 2. M-x load-file PREFIX/share/emacs/23.4/lisp/progmodes/cc-fonts.elc
>> >> RTE.
>> >> 3. Replay scrolling a large C++ file.
>
>> >> I'm not sure if this slowdown is intended or expected.
>
>> > Indeed, this makes the speed situation much better on Emacs 24.0.97.
>
>> I can now confirm that loading CC-Mode 5.32.3 into Emacs 23.4 causes
>> the identical speed issues that I was seeing with Emacs 24.0.97, so
>> this is a performance issue in the latest CC-Mode, not a bug in Emacs
>> 24 or with Mac-Port Emacs.
>
>> To the CC-Mode maintainers: is there a way to disable the slower, "more
>> correct" mode in the latest CC-Mode, and go back to the entirely
>> sufficient (for me) mode of previous versions?
>
> Not as such, no. The only workaround at the moment is to use a
> "pre-correct" version of CC Mode in place of an up to date one.
>
> I've just done a binary chop on CC Mode versions, and it seems the latest
> version before (?the first of) these enhancements was the one created by
> this (mercurial) changeset (the repository can be downloaded from
> <http://cc-mode.sourceforge.net>):
>
> changeset: 5109:981fa4f0270c
> parent: 5107:bd4013c5633b
> user: acmacm
> date: Wed Sep 15 17:47:52 2010 +0000
> files: cc-engine.el
> description:
> (c-forward-<>-arglist-recur): Fix an infinite recursion.
>
> To undo these changes would be difficult, since several later
> enhancements and bug fixes are based on the new code. I'll see if I can
> find some way of optimising the offending code - most of the time it's
> doing expensive checks and finding nothing.
>
> Anyhow, I've got the problem flagged as a bug now. Thanks again for
> reporting it.
Just to follow up on this bug, which has seen no update in the last 7
years. Has it been fixed by now?
Best regards,
Stefan Kangas
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2019-11-01 18:40 ` Stefan Kangas
@ 2019-11-02 10:59 ` Alan Mackenzie
2019-11-02 11:08 ` Stefan Kangas
0 siblings, 1 reply; 15+ messages in thread
From: Alan Mackenzie @ 2019-11-02 10:59 UTC (permalink / raw)
To: Stefan Kangas; +Cc: John Wiegley, 11545
Hello, Stefan.
On Fri, Nov 01, 2019 at 19:40:31 +0100, Stefan Kangas wrote:
> Hi Alan,
> Alan Mackenzie <acm@muc.de> writes:
> > On Mon, May 28, 2012 at 06:05:15PM -0500, John Wiegley wrote:
> >> >>>>> John Wiegley <jwiegley@gmail.com> writes:
> >> >>>>>> YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> writes:
> >> >> With the Time Profiler in Instrument.app, I found that fontification
> >> >> of CC Mode in Emacs 24 is much heavier and causes frequent GCs than
> >> >> that in Emacs 23. Please try the following:
> >> >> 1. Start Emacs 24 Mac port with -Q (alternatively, pressing the
> >> >> shift key.)
> >> >> 2. M-x load-file PREFIX/share/emacs/23.4/lisp/progmodes/cc-fonts.elc
> >> >> RTE.
> >> >> 3. Replay scrolling a large C++ file.
> >> >> I'm not sure if this slowdown is intended or expected.
> >> > Indeed, this makes the speed situation much better on Emacs 24.0.97.
> >> I can now confirm that loading CC-Mode 5.32.3 into Emacs 23.4 causes
> >> the identical speed issues that I was seeing with Emacs 24.0.97, so
> >> this is a performance issue in the latest CC-Mode, not a bug in Emacs
> >> 24 or with Mac-Port Emacs.
> >> To the CC-Mode maintainers: is there a way to disable the slower, "more
> >> correct" mode in the latest CC-Mode, and go back to the entirely
> >> sufficient (for me) mode of previous versions?
> > Not as such, no. The only workaround at the moment is to use a
> > "pre-correct" version of CC Mode in place of an up to date one.
> > I've just done a binary chop on CC Mode versions, and it seems the latest
> > version before (?the first of) these enhancements was the one created by
> > this (mercurial) changeset (the repository can be downloaded from
> > <http://cc-mode.sourceforge.net>):
> > changeset: 5109:981fa4f0270c
> > parent: 5107:bd4013c5633b
> > user: acmacm
> > date: Wed Sep 15 17:47:52 2010 +0000
> > files: cc-engine.el
> > description:
> > (c-forward-<>-arglist-recur): Fix an infinite recursion.
> > To undo these changes would be difficult, since several later
> > enhancements and bug fixes are based on the new code. I'll see if I can
> > find some way of optimising the offending code - most of the time it's
> > doing expensive checks and finding nothing.
> > Anyhow, I've got the problem flagged as a bug now. Thanks again for
> > reporting it.
> Just to follow up on this bug, which has seen no update in the last 7
> years. Has it been fixed by now?
"Fixed" doesn't seem the right term, really. There have been several
improvemnts in the scrolling speed over the years (the latest less than
an hour ago ;-). When I scroll through a typical ~700k C++ buffer, I now
experience mild sluggishness, a C-v taking a small fraction of a second,
but longer than instantaneous. This is perhaps less than ideal on a
slowish machine (which mine is not), but there's a tradeoff between rapid
fontification and correct fontification.
I think this bug should now be closed.
> Best regards,
> Stefan Kangas
--
Alan Mackenzie (Nuremberg, Germany).
^ permalink raw reply [flat|nested] 15+ messages in thread
* bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code
2019-11-02 10:59 ` Alan Mackenzie
@ 2019-11-02 11:08 ` Stefan Kangas
0 siblings, 0 replies; 15+ messages in thread
From: Stefan Kangas @ 2019-11-02 11:08 UTC (permalink / raw)
To: Alan Mackenzie; +Cc: John Wiegley, 11545-done
Hi Alan,
Alan Mackenzie <acm@muc.de> writes:
>> Just to follow up on this bug, which has seen no update in the last 7
>> years. Has it been fixed by now?
>
> "Fixed" doesn't seem the right term, really. There have been several
> improvemnts in the scrolling speed over the years (the latest less than
> an hour ago ;-). When I scroll through a typical ~700k C++ buffer, I now
> experience mild sluggishness, a C-v taking a small fraction of a second,
> but longer than instantaneous. This is perhaps less than ideal on a
> slowish machine (which mine is not), but there's a tradeoff between rapid
> fontification and correct fontification.
>
> I think this bug should now be closed.
Thanks for that explanation. I'm consequently closing the bug.
Best regards,
Stefan Kangas
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2019-11-02 11:08 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <m2d364ocwo.fsf@gmail.com>
[not found] ` <wlwr4bsioz.wl%mituharu@math.s.chiba-u.ac.jp>
[not found] ` <m2zk97qvpr.fsf@gmail.com>
[not found] ` <wlvcju737a.wl%mituharu@math.s.chiba-u.ac.jp>
2012-05-23 7:24 ` bug#11545: 24.0.96-mac-2.92; Strange speed problem scrolling in C++ code John Wiegley
2012-05-23 7:35 ` Andreas Schwab
2012-05-23 7:51 ` Glenn Morris
2012-05-23 8:15 ` Glenn Morris
2012-05-23 10:28 ` John Wiegley
2012-05-23 16:16 ` Eli Zaretskii
2012-05-23 22:27 ` John Wiegley
2012-05-25 21:45 ` Alan Mackenzie
2012-05-26 7:46 ` John Wiegley
2012-05-28 23:05 ` John Wiegley
2012-06-02 21:20 ` Alan Mackenzie
2012-06-11 13:31 ` bug#11545: " John Wiegley
2019-11-01 18:40 ` Stefan Kangas
2019-11-02 10:59 ` Alan Mackenzie
2019-11-02 11:08 ` Stefan Kangas
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).