GNU bug report logs - #24634
25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters

Previous Next

Package: emacs;

Reported by: Georges Ko <gko <at> gko.net>

Date: Fri, 7 Oct 2016 05:01:02 UTC

Severity: normal

Found in version 25.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 24634 in the body.
You can then email your comments to 24634 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#24634; Package emacs. (Fri, 07 Oct 2016 05:01:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Georges Ko <gko <at> gko.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 07 Oct 2016 05:01:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Georges Ko <gko <at> gko.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy"
 characters
Date: Fri, 07 Oct 2016 12:59:14 +0800
When moving in lines with characters such as WAVY LOW LINE or WAVY LINE:

  - Emacs freezes for a while (noticeable) for a fraction of a second or
    even longer,

  - The CPU load of Emacs increases as well (up to 25% on my Windows 7
    machine) in the meantime.

Text sample below:


﹏



⌇




This happens to the "native" as well as the Cygwin-compiled (--with-w32)
versions, but not with the gtk3 version (--with-x-toolkit=gtk3).
-- 
 Georges Ko                     gko <at> gko.net                      2016-10-07





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24634; Package emacs. (Fri, 07 Oct 2016 07:18:01 GMT) Full text and rfc822 format available.

Message #8 received at 24634 <at> debbugs.gnu.org (full text, mbox):

From: Nikolay Kudryavtsev <nikolay.kudryavtsev <at> gmail.com>
To: gko <at> gko.net
Cc: 24634 <at> debbugs.gnu.org
Subject: Re: bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load
 with "wavy" characters
Date: Fri, 7 Oct 2016 10:16:39 +0300
This is a duplicate of #15876, I recently reported this as #24565, see 
the discussion there for a workaround and perspectives for a more 
permanent fix.

-- 
Best Regards,
Nikolay Kudryavtsev





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24634; Package emacs. (Fri, 07 Oct 2016 08:06:02 GMT) Full text and rfc822 format available.

Message #11 received at 24634 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Georges Ko <gko <at> gko.net>
Cc: 24634 <at> debbugs.gnu.org
Subject: Re: bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load
 with "wavy" characters
Date: Fri, 07 Oct 2016 11:05:50 +0300
> From: Georges Ko <gko <at> gko.net>
> Date: Fri, 07 Oct 2016 12:59:14 +0800
> 
> When moving in lines with characters such as WAVY LOW LINE or WAVY LINE:
> 
>   - Emacs freezes for a while (noticeable) for a fraction of a second or
>     even longer,
> 
>   - The CPU load of Emacs increases as well (up to 25% on my Windows 7
>     machine) in the meantime.

Possibly related to bug#24565.

> Text sample below:
> 
> 
> ﹏
> 
> 
> 
> ⌇

What font(s) is/are used on your system to display these characters?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24634; Package emacs. (Fri, 07 Oct 2016 17:07:02 GMT) Full text and rfc822 format available.

Message #14 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Georges Ko <gko <at> gko.net>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load
 with "wavy" characters
Date: Sat, 08 Oct 2016 01:01:40 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

>> ﹏
>> 
>> 
>> 
>> ⌇
>
> What font(s) is/are used on your system to display these characters?

I did some tests with "runemacs -Q", with the following results as an
org-mode buffer.

I can mitigate the problem by using language environment "English" and
font "MingLiu-SIZE" (2nd step), the worst case being language
environment "UTF-8" and font "Courier NEw-SIZE" (3rd step).

* Summary
  |---------+----------+-------+------+------+---------------------------------------------------------|
  | Step    | current- | frame | WAVY | WAVY | Font of set-frame-font, WAVY LINE and WAVY LOW LINE     |
  |         | language | font  | LINE | LOW  | O=outline NNN=normal-normal-normal                      |
  |         | environ  |       |      | LINE |                                                         |
  |---------+----------+-------+------+------+---------------------------------------------------------|
  | Initial | English  | CN-10 |      |      | -O-Courier New-NNN-mono-13-*-*-*-c-*-iso8859-1 (#x1E)   |
  |         |          |       | OK   |      | -O-Symbola-NNN-serif-13-*-*-*-p-*-iso8859-1 (#x640)     |
  |         |          |       |      | NOK  | -O-MingLiU-NNN-mono-13-*-*-*-c-*-iso10646-1 (#x7096)    |
  |---------+----------+-------+------+------+---------------------------------------------------------|
  | (s-f-f  | English  | ML-10 |      |      | -O-MingLiU-NNN-mono-13-*-*-*-c-*-iso8859-1 (#x29)       |
  | ML-10)  |          |       | OK   |      | -O-MingLiU-NNN-mono-13-*-*-*-c-*-iso8859-1 (#x286)      |
  |         |          |       |      | OK   | -O-MingLiU-NNN-mono-13-*-*-*-c-*-gb2312.1980-0 (#x7096) |
  |---------+----------+-------+------+------+---------------------------------------------------------|
  | s-l-e   | UTF-8    | ML-10 |      |      | -O-MingLiU-NNN-mono-13-*-*-*-c-*-iso8859-1 (#x55)       |
  | UTF-8   |          |       | OK   |      | -O-MingLiU-NNN-mono-13-*-*-*-c-*-iso8859-1 (#x286)      |
  |         |          |       |      | NOK  | -O-MingLiU-NNN-mono-13-*-*-*-c-*-iso10646-1 (#x7096)    |
  |---------+----------+-------+------+------+---------------------------------------------------------|
  | (s-f-f  | UTF-8    | CN-10 |      |      | -O-Courier New-NNN-mono-13-*-*-*-c-*-iso8859-1 (#x03)   |
  | CN-10)  |          |       | NOK  |      | -O-Symbola-NNN-serif-13-*-*-*-p-*-iso8859-1 (#x640)     |
  |         |          |       |      | NOK  | -O-MingLiU-NNN-mono-13-*-*-*-c-*-iso10646-1 (#x7096)    |
  |---------+----------+-------+------+------+---------------------------------------------------------|
  - WAVY LINE    : script: symbol, category: .:Base
  - WAVY LOW LINE: script: han,    category: .:Base, c:Chinese

* Details

** Environment
  - C:\emacs-25.1-x86_64-w64-mingw32\bin\runemacs.exe -Q
  - current-language-environment -> "English"
  - w32-ansi-code-page -> 1252
  - Character info (C-u C-x =) of some ASCII character in *scratch*:
    #+BEGIN_SRC fundamental
                   position: 1 of 145 (0%), column: 0
                  character: ; (displayed as ;) (codepoint 59, #o73, #x3b)
          preferred charset: ascii (ASCII (ISO646 IRV))
      code point in charset: 0x3B
                     script: latin
                     syntax: <        which means: comment
                   category: .:Base, a:ASCII, l:Latin, r:Roman
                   to input: type "C-x 8 RET 3b" or "C-x 8 RET SEMICOLON"
                buffer code: #x3B
                  file code: #x3B (encoded by coding system iso-latin-1-dos)
                    display: by this font (glyph code)
          uniscribe:-outline-Courier New-normal-normal-normal-mono-13-*-*-*-c-*-iso8859-1 (#x1E)

      Character code properties: customize what to show
        name: SEMICOLON
        general-category: Po (Punctuation, Other)
        decomposition: (59) (';')

      There are text properties here:
        face                 font-lock-comment-delimiter-face
        fontified            nil
    #+END_SRC

** Initial setup
  - Insert "WAVY LINE": (insert-char 8967 1 t)
    - OK: no high CPU load
    - Character info of wavy line:
      #+BEGIN_SRC fundamental
                     position: 184 of 189 (97%), column: 0
                    character: ⌇ (displayed as ⌇) (codepoint 8967, #o21407, #x2307)
            preferred charset: unicode (Unicode (ISO10646))
        code point in charset: 0x2307
                       script: symbol
                       syntax: .        which means: punctuation
                     category: .:Base
                     to input: type "C-x 8 RET 2307" or "C-x 8 RET WAVY LINE"
                  buffer code: #xE2 #x8C #x87
                    file code: not encodable by coding system iso-latin-1-dos
                      display: by this font (glyph code)
            uniscribe:-outline-Symbola-normal-normal-normal-serif-13-*-*-*-p-*-iso8859-1 (#x640)

        Character code properties: customize what to show
          name: WAVY LINE
          general-category: So (Symbol, Other)
          decomposition: (8967) ('⌇')

        There are text properties here:
          fontified            t
      #+END_SRC
  - Insert "WAVY LOW LINE": (insert-char 65103 1 t)
    - NOK: high CPU load
    - Character info of wavy low line:
      #+BEGIN_SRC fundamental
                     position: 187 of 194 (96%), column: 0
                    character: ﹏ (displayed as ﹏) (codepoint 65103, #o177117, #xfe4f)
            preferred charset: unicode (Unicode (ISO10646))
        code point in charset: 0xFE4F
                       script: han
                       syntax: w        which means: word
                     category: .:Base, c:Chinese
                     to input: type "C-x 8 RET fe4f" or "C-x 8 RET WAVY LOW LINE"
                  buffer code: #xEF #xB9 #x8F
                    file code: not encodable by coding system iso-latin-1-dos
                      display: by this font (glyph code)
            uniscribe:-outline-MingLiU-normal-normal-normal-mono-13-*-*-*-c-*-iso10646-1 (#x7096)

        Character code properties: customize what to show
          name: WAVY LOW LINE
          old-name: SPACING WAVY UNDERSCORE
          general-category: Pc (Punctuation, Connector)
          decomposition: (compat 95) (compat '_')

        There are text properties here:
          fontified            t
      #+END_SRC
    - At this moment, Emacs is very jerky due to the presence of wavy 
      low line character.

** (set-frame-font "MingLiu-10")
  - Right after switching to this font, everything is smooth again!
  - Check "WAVY LINE":
    - OK: no high CPU load
    - Character info of wavy line:
      #+BEGIN_SRC fundamental
                     position: 184 of 194 (94%), column: 0
                    character: ⌇ (displayed as ⌇) (codepoint 8967, #o21407, #x2307)
            preferred charset: unicode (Unicode (ISO10646))
        code point in charset: 0x2307
                       script: symbol
                       syntax: .        which means: punctuation
                     category: .:Base
                     to input: type "C-x 8 RET 2307" or "C-x 8 RET WAVY LINE"
                  buffer code: #xE2 #x8C #x87
                    file code: not encodable by coding system iso-latin-1-dos
                      display: by this font (glyph code)
            uniscribe:-outline-MingLiU-normal-normal-normal-mono-13-*-*-*-c-*-iso8859-1 (#x286)

        Character code properties: customize what to show
          name: WAVY LINE
          general-category: So (Symbol, Other)
          decomposition: (8967) ('⌇')

        There are text properties here:
          fontified            t
      #+END_SRC
  - check "WAVY LOW LINE":
    - OK: no high CPU load
    - Character info of wavy low line:
      #+BEGIN_SRC fundamental
                     position: 187 of 194 (96%), column: 0
                    character: ﹏ (displayed as ﹏) (codepoint 65103, #o177117, #xfe4f)
            preferred charset: unicode (Unicode (ISO10646))
        code point in charset: 0xFE4F
                       script: han
                       syntax: w        which means: word
                     category: .:Base, c:Chinese
                     to input: type "C-x 8 RET fe4f" or "C-x 8 RET WAVY LOW LINE"
                  buffer code: #xEF #xB9 #x8F
                    file code: not encodable by coding system iso-latin-1-dos
                      display: by this font (glyph code)
            uniscribe:-outline-MingLiU-normal-normal-normal-mono-13-*-*-*-c-*-gb2312.1980-0 (#x7096)

        Character code properties: customize what to show
          name: WAVY LOW LINE
          old-name: SPACING WAVY UNDERSCORE
          general-category: Pc (Punctuation, Connector)
          decomposition: (compat 95) (compat '_')

        There are text properties here:
          fontified            t
      #+END_SRC

** (set-language-environment) to UTF-8:
  - Check "WAVY LINE":
    - OK: no high CPU load
    - Character info of wavy line:
      #+BEGIN_SRC fundamental
                     position: 184 of 196 (93%), column: 0
                    character: ⌇ (displayed as ⌇) (codepoint 8967, #o21407, #x2307)
            preferred charset: unicode-bmp (Unicode Basic Multilingual Plane (U+0000..U+FFFF))
        code point in charset: 0x2307
                       script: symbol
                       syntax: .        which means: punctuation
                     category: .:Base
                     to input: type "C-x 8 RET 2307" or "C-x 8 RET WAVY LINE"
                  buffer code: #xE2 #x8C #x87
                    file code: #xE2 #x8C #x87 (encoded by coding system utf-8-dos)
                      display: by this font (glyph code)
            uniscribe:-outline-MingLiU-normal-normal-normal-mono-13-*-*-*-c-*-iso8859-1 (#x286)

        Character code properties: customize what to show
          name: WAVY LINE
          general-category: So (Symbol, Other)
          decomposition: (8967) ('⌇')

        There are text properties here:
          fontified            t
      #+END_SRC
  - Check "WAVY LOW LINE":
    - NOK: high CPU load
    - Character info of wavy low line:
      #+BEGIN_SRC fundamental
                     position: 189 of 196 (96%), column: 0
                    character: ﹏ (displayed as ﹏) (codepoint 65103, #o177117, #xfe4f)
            preferred charset: unicode-bmp (Unicode Basic Multilingual Plane (U+0000..U+FFFF))
        code point in charset: 0xFE4F
                       script: han
                       syntax: w        which means: word
                     category: .:Base, c:Chinese
                     to input: type "C-x 8 RET fe4f" or "C-x 8 RET WAVY LOW LINE"
                  buffer code: #xEF #xB9 #x8F
                    file code: #xEF #xB9 #x8F (encoded by coding system utf-8-dos)
                      display: by this font (glyph code)
            uniscribe:-outline-MingLiU-normal-normal-normal-mono-13-*-*-*-c-*-iso10646-1 (#x7096)

        Character code properties: customize what to show
          name: WAVY LOW LINE
          old-name: SPACING WAVY UNDERSCORE
          general-category: Pc (Punctuation, Connector)
          decomposition: (compat 95) (compat '_')

        There are text properties here:
          fontified            t
      #+END_SRC

** (set-frame-font "Courier New-10")
  - Check "WAVY LINE":
    - NOK: high CPU load
    - Character info of wavy line:
      #+BEGIN_SRC fundamental
                     position: 184 of 196 (93%), column: 0
                    character: ⌇ (displayed as ⌇) (codepoint 8967, #o21407, #x2307)
            preferred charset: unicode-bmp (Unicode Basic Multilingual Plane (U+0000..U+FFFF))
        code point in charset: 0x2307
                       script: symbol
                       syntax: .        which means: punctuation
                     category: .:Base
                     to input: type "C-x 8 RET 2307" or "C-x 8 RET WAVY LINE"
                  buffer code: #xE2 #x8C #x87
                    file code: #xE2 #x8C #x87 (encoded by coding system utf-8-dos)
                      display: by this font (glyph code)
            uniscribe:-outline-Symbola-normal-normal-normal-serif-13-*-*-*-p-*-iso8859-1 (#x640)

        Character code properties: customize what to show
          name: WAVY LINE
          general-category: So (Symbol, Other)
          decomposition: (8967) ('⌇')

        There are text properties here:
          fontified            t
      #+END_SRC
  - Check "WAVY LOW LINE":
    - NOK: high CPU load
    - Character info of wavy low line:
      #+BEGIN_SRC fundamental
                     position: 189 of 196 (96%), column: 0
                    character: ﹏ (displayed as ﹏) (codepoint 65103, #o177117, #xfe4f)
            preferred charset: unicode-bmp (Unicode Basic Multilingual Plane (U+0000..U+FFFF))
        code point in charset: 0xFE4F
                       script: han
                       syntax: w        which means: word
                     category: .:Base, c:Chinese
                     to input: type "C-x 8 RET fe4f" or "C-x 8 RET WAVY LOW LINE"
                  buffer code: #xEF #xB9 #x8F
                    file code: #xEF #xB9 #x8F (encoded by coding system utf-8-dos)
                      display: by this font (glyph code)
            uniscribe:-outline-MingLiU-normal-normal-normal-mono-13-*-*-*-c-*-iso10646-1 (#x7096)

        Character code properties: customize what to show
          name: WAVY LOW LINE
          old-name: SPACING WAVY UNDERSCORE
          general-category: Pc (Punctuation, Connector)
          decomposition: (compat 95) (compat '_')

        There are text properties here:
          fontified            t
      #+END_SRC
-- 
 Georges Ko                     gko <at> gko.net                      2016-10-08





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24634; Package emacs. (Fri, 07 Oct 2016 19:04:02 GMT) Full text and rfc822 format available.

Message #17 received at 24634 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Georges Ko <gko <at> gko.net>
Cc: 24634 <at> debbugs.gnu.org
Subject: Re: bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load
 with "wavy" characters
Date: Fri, 07 Oct 2016 22:03:00 +0300
> From: Georges Ko <gko <at> gko.net>
> Date: Sat, 08 Oct 2016 01:01:40 +0800
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> ﹏
> >> 
> >> 
> >> 
> >> ⌇
> >
> > What font(s) is/are used on your system to display these characters?
> 
> I did some tests with "runemacs -Q", with the following results as an
> org-mode buffer.
> 
> I can mitigate the problem by using language environment "English" and
> font "MingLiu-SIZE" (2nd step), the worst case being language
> environment "UTF-8" and font "Courier NEw-SIZE" (3rd step).

So Symbola and Courier New don't cause slowdown, while MingLiu does?

Do you have some custom fontset setup, or does Emacs use MingLiu for
the WAVY LOW LINE by default, in "emacs -Q"?

(But the way, setting language environment to UTF-8 on Windows is not
a good idea, it will cause you trouble unless you make further
customizations to countermand that.)

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24634; Package emacs. (Sat, 08 Oct 2016 03:01:02 GMT) Full text and rfc822 format available.

Message #20 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Georges Ko <gko <at> gko.net>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load
 with "wavy" characters
Date: Sat, 08 Oct 2016 10:59:06 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

>> > What font(s) is/are used on your system to display these characters?
>> 
>> I did some tests with "runemacs -Q", with the following results as an
>> org-mode buffer.
>> 
>> I can mitigate the problem by using language environment "English" and
>> font "MingLiu-SIZE" (2nd step), the worst case being language
>> environment "UTF-8" and font "Courier NEw-SIZE" (3rd step).
>
> So Symbola and Courier New don't cause slowdown, while MingLiu does?
>
> Do you have some custom fontset setup, or does Emacs use MingLiu for
> the WAVY LOW LINE by default, in "emacs -Q"?

Emacs uses MingLiu in "emacs -Q" on my system.

In "Initial setup" I just do "emacs -Q" and insert these characters and
see the fonts used to display ASCII characters (1st line), WAVY LINE
(2nd line) and WAVY LOW LINE (3rd character), which are:

  - ASCII         -O-Courier New-NNN-mono-13-*-*-*-c-*-iso8859-1
  - WAVY LINE     -O-Symbola-NNN-serif-13-*-*-*-p-*-iso8859-1
  - WAVY LOW LINE -O-MingLiU-NNN-mono-13-*-*-*-c-*-iso10646-1

and WAVY LINE     (Symbola) is OK (no slowdown) and
    WAVY LOW LINE (MingLiu) is NOK (slowdown).

After switching to "MingLiu-10" with (set-frame-font "MingLiu-10),
everything is smooth and using all use MingLiu-10 (2nd row of table):

  - ASCII, WAVY LINE -O-MingLiU-NNN-mono-13-*-*-*-c-*-iso8859-1
  - WAVY LOW LINE    -O-MingLiU-NNN-mono-13-*-*-*-c-*-gb2312.1980-0

> (But the way, setting language environment to UTF-8 on Windows is not
> a good idea, it will cause you trouble unless you make further
> customizations to countermand that.)

OK, let's narrow the scope and not consider UTF-8 cases (rows 3 and 4).

Georges
-- 
 Georges Ko                     gko <at> gko.net                      2016-10-08





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24634; Package emacs. (Sat, 08 Oct 2016 06:22:01 GMT) Full text and rfc822 format available.

Message #23 received at 24634 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Georges Ko <gko <at> gko.net>
Cc: 24634 <at> debbugs.gnu.org
Subject: Re: bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load
 with "wavy" characters
Date: Sat, 08 Oct 2016 09:21:14 +0300
> From: Georges Ko <gko <at> gko.net>
> Date: Sat, 08 Oct 2016 10:59:06 +0800
> 
> > So Symbola and Courier New don't cause slowdown, while MingLiu does?

What about this question?

> > Do you have some custom fontset setup, or does Emacs use MingLiu for
> > the WAVY LOW LINE by default, in "emacs -Q"?
> 
> Emacs uses MingLiu in "emacs -Q" on my system.
> 
> In "Initial setup" I just do "emacs -Q" and insert these characters and
> see the fonts used to display ASCII characters (1st line), WAVY LINE
> (2nd line) and WAVY LOW LINE (3rd character), which are:
> 
>   - ASCII         -O-Courier New-NNN-mono-13-*-*-*-c-*-iso8859-1
>   - WAVY LINE     -O-Symbola-NNN-serif-13-*-*-*-p-*-iso8859-1
>   - WAVY LOW LINE -O-MingLiU-NNN-mono-13-*-*-*-c-*-iso10646-1
> 
> and WAVY LINE     (Symbola) is OK (no slowdown) and
>     WAVY LOW LINE (MingLiu) is NOK (slowdown).
> 
> After switching to "MingLiu-10" with (set-frame-font "MingLiu-10),
> everything is smooth and using all use MingLiu-10 (2nd row of table):
> 
>   - ASCII, WAVY LINE -O-MingLiU-NNN-mono-13-*-*-*-c-*-iso8859-1
>   - WAVY LOW LINE    -O-MingLiU-NNN-mono-13-*-*-*-c-*-gb2312.1980-0

As I said elsewhere, patches to make the offending code opt-out under
control of a Lisp variable are welcome.  If you rebuild with the
compact_font_caches function (in alloc.c) disabled, i.e. make its body
empty, does the problem go away for you?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24634; Package emacs. (Sat, 08 Oct 2016 08:22:01 GMT) Full text and rfc822 format available.

Message #26 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Georges Ko <gko <at> gko.net>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load
 with "wavy" characters
Date: Sat, 08 Oct 2016 16:20:33 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

>> > So Symbola and Courier New don't cause slowdown, while MingLiu does?
>
> What about this question?

WAVY LOW LINE in MingLiu does cause slow down if the default font is
Courier New (emacs -Q), but not if it is MingLiu.

> As I said elsewhere, patches to make the offending code opt-out under
> control of a Lisp variable are welcome.  If you rebuild with the
> compact_font_caches function (in alloc.c) disabled, i.e. make its body
> empty, does the problem go away for you?

I'll try and see what happens.
-- 
 Georges Ko                     gko <at> gko.net                      2016-10-08





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24634; Package emacs. (Sat, 08 Oct 2016 14:14:01 GMT) Full text and rfc822 format available.

Message #29 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Georges Ko <gko <at> gko.net>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load
 with "wavy" characters
Date: Sat, 08 Oct 2016 22:11:47 +0800
Georges Ko <gko <at> gko.net> writes:

>> As I said elsewhere, patches to make the offending code opt-out under
>> control of a Lisp variable are welcome.  If you rebuild with the
>> compact_font_caches function (in alloc.c) disabled, i.e. make its body
>> empty, does the problem go away for you?
>
> I'll try and see what happens.

When compiled with compact_font_caches empty or not called, Emacs
crashes at launch...
-- 
 Georges Ko                     gko <at> gko.net                      2016-10-08





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24634; Package emacs. (Sat, 08 Oct 2016 14:44:02 GMT) Full text and rfc822 format available.

Message #32 received at 24634 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Georges Ko <gko <at> gko.net>
Cc: 24634 <at> debbugs.gnu.org
Subject: Re: bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load
 with "wavy" characters
Date: Sat, 08 Oct 2016 17:43:40 +0300
> From: Georges Ko <gko <at> gko.net>
> Date: Sat, 08 Oct 2016 22:11:47 +0800
> 
> When compiled with compact_font_caches empty or not called, Emacs
> crashes at launch...

Sorry, I failed to mention that you need to leave the mark_object call
there.  IOW, the function compact_font_caches should be like this:

static void
compact_font_caches (void)
{
  struct terminal *t;

  for (t = terminal_list; t; t = t->next_terminal)
    {
      Lisp_Object cache = TERMINAL_FONT_CACHE (t);
      mark_object (cache);
    }
}




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24634; Package emacs. (Sat, 08 Oct 2016 15:25:02 GMT) Full text and rfc822 format available.

Message #35 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Georges Ko <gko <at> gko.net>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load
 with "wavy" characters
Date: Sat, 08 Oct 2016 23:24:24 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

>> When compiled with compact_font_caches empty or not called, Emacs
>> crashes at launch...
>
> Sorry, I failed to mention that you need to leave the mark_object call
> there.  IOW, the function compact_font_caches should be like this:
>
> static void
> compact_font_caches (void)
> {
>   struct terminal *t;
>
>   for (t = terminal_list; t; t = t->next_terminal)
>     {
>       Lisp_Object cache = TERMINAL_FONT_CACHE (t);
>       mark_object (cache);
>     }
> }

OK, this version fixes all cases!
-- 
 Georges Ko                     gko <at> gko.net                      2016-10-08





Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sat, 08 Oct 2016 19:35:02 GMT) Full text and rfc822 format available.

Notification sent to Georges Ko <gko <at> gko.net>:
bug acknowledged by developer. (Sat, 08 Oct 2016 19:35:02 GMT) Full text and rfc822 format available.

Message #40 received at 24634-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Georges Ko <gko <at> gko.net>
Cc: 24634-done <at> debbugs.gnu.org
Subject: Re: bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load
 with "wavy" characters
Date: Sat, 08 Oct 2016 22:34:14 +0300
> From: Georges Ko <gko <at> gko.net>
> Date: Sat, 08 Oct 2016 23:24:24 +0800
> 
> > static void
> > compact_font_caches (void)
> > {
> >   struct terminal *t;
> >
> >   for (t = terminal_list; t; t = t->next_terminal)
> >     {
> >       Lisp_Object cache = TERMINAL_FONT_CACHE (t);
> >       mark_object (cache);
> >     }
> > }
> 
> OK, this version fixes all cases!

OK, I've now added a variable which you can set to non-nil to disable
font cache compaction.  See the latest emacs-25 branch.

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#24634; Package emacs. (Mon, 10 Oct 2016 09:57:02 GMT) Full text and rfc822 format available.

Message #43 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Georges Ko <gko <at> gko.net>
To: bug-gnu-emacs <at> gnu.org
Subject: Re: bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load
 with "wavy" characters
Date: Mon, 10 Oct 2016 17:54:51 +0800
Eli Zaretskii <eliz <at> gnu.org> writes:

>>  OK, this version fixes all cases!
>
> OK, I've now added a variable which you can set to non-nil to disable font
> cache compaction.  See the latest emacs-25 branch.

OK, thanks!
-- 
 Georges Ko                     gko <at> gko.net                      2016-10-10





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 07 Nov 2016 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 8 years and 286 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.