unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters
@ 2016-10-07  4:59 Georges Ko
  2016-10-07  7:16 ` Nikolay Kudryavtsev
  2016-10-07  8:05 ` Eli Zaretskii
  0 siblings, 2 replies; 13+ messages in thread
From: Georges Ko @ 2016-10-07  4:59 UTC (permalink / raw)
  To: 24634

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@gko.net                      2016-10-07






^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters
  2016-10-07  4:59 bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters Georges Ko
@ 2016-10-07  7:16 ` Nikolay Kudryavtsev
  2016-10-07  8:05 ` Eli Zaretskii
  1 sibling, 0 replies; 13+ messages in thread
From: Nikolay Kudryavtsev @ 2016-10-07  7:16 UTC (permalink / raw)
  To: gko; +Cc: 24634

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






^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters
  2016-10-07  4:59 bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters Georges Ko
  2016-10-07  7:16 ` Nikolay Kudryavtsev
@ 2016-10-07  8:05 ` Eli Zaretskii
  2016-10-07 17:01   ` Georges Ko
  1 sibling, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2016-10-07  8:05 UTC (permalink / raw)
  To: Georges Ko; +Cc: 24634

> From: Georges Ko <gko@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?





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters
  2016-10-07  8:05 ` Eli Zaretskii
@ 2016-10-07 17:01   ` Georges Ko
  2016-10-07 19:03     ` Eli Zaretskii
  0 siblings, 1 reply; 13+ messages in thread
From: Georges Ko @ 2016-10-07 17:01 UTC (permalink / raw)
  To: 24634

Eli Zaretskii <eliz@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@gko.net                      2016-10-08






^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters
  2016-10-07 17:01   ` Georges Ko
@ 2016-10-07 19:03     ` Eli Zaretskii
  2016-10-08  2:59       ` Georges Ko
  0 siblings, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2016-10-07 19:03 UTC (permalink / raw)
  To: Georges Ko; +Cc: 24634

> From: Georges Ko <gko@gko.net>
> Date: Sat, 08 Oct 2016 01:01:40 +0800
> 
> Eli Zaretskii <eliz@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.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters
  2016-10-07 19:03     ` Eli Zaretskii
@ 2016-10-08  2:59       ` Georges Ko
  2016-10-08  6:21         ` Eli Zaretskii
  0 siblings, 1 reply; 13+ messages in thread
From: Georges Ko @ 2016-10-08  2:59 UTC (permalink / raw)
  To: 24634

Eli Zaretskii <eliz@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@gko.net                      2016-10-08






^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters
  2016-10-08  2:59       ` Georges Ko
@ 2016-10-08  6:21         ` Eli Zaretskii
  2016-10-08  8:20           ` Georges Ko
  0 siblings, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2016-10-08  6:21 UTC (permalink / raw)
  To: Georges Ko; +Cc: 24634

> From: Georges Ko <gko@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?





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters
  2016-10-08  6:21         ` Eli Zaretskii
@ 2016-10-08  8:20           ` Georges Ko
  2016-10-08 14:11             ` Georges Ko
  0 siblings, 1 reply; 13+ messages in thread
From: Georges Ko @ 2016-10-08  8:20 UTC (permalink / raw)
  To: 24634

Eli Zaretskii <eliz@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@gko.net                      2016-10-08






^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters
  2016-10-08  8:20           ` Georges Ko
@ 2016-10-08 14:11             ` Georges Ko
  2016-10-08 14:43               ` Eli Zaretskii
  0 siblings, 1 reply; 13+ messages in thread
From: Georges Ko @ 2016-10-08 14:11 UTC (permalink / raw)
  To: 24634

Georges Ko <gko@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@gko.net                      2016-10-08






^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters
  2016-10-08 14:11             ` Georges Ko
@ 2016-10-08 14:43               ` Eli Zaretskii
  2016-10-08 15:24                 ` Georges Ko
  0 siblings, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2016-10-08 14:43 UTC (permalink / raw)
  To: Georges Ko; +Cc: 24634

> From: Georges Ko <gko@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);
    }
}





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters
  2016-10-08 14:43               ` Eli Zaretskii
@ 2016-10-08 15:24                 ` Georges Ko
  2016-10-08 19:34                   ` Eli Zaretskii
  0 siblings, 1 reply; 13+ messages in thread
From: Georges Ko @ 2016-10-08 15:24 UTC (permalink / raw)
  To: 24634

Eli Zaretskii <eliz@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@gko.net                      2016-10-08






^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters
  2016-10-08 15:24                 ` Georges Ko
@ 2016-10-08 19:34                   ` Eli Zaretskii
  2016-10-10  9:54                     ` Georges Ko
  0 siblings, 1 reply; 13+ messages in thread
From: Eli Zaretskii @ 2016-10-08 19:34 UTC (permalink / raw)
  To: Georges Ko; +Cc: 24634-done

> From: Georges Ko <gko@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.





^ permalink raw reply	[flat|nested] 13+ messages in thread

* bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters
  2016-10-08 19:34                   ` Eli Zaretskii
@ 2016-10-10  9:54                     ` Georges Ko
  0 siblings, 0 replies; 13+ messages in thread
From: Georges Ko @ 2016-10-10  9:54 UTC (permalink / raw)
  To: 24634

Eli Zaretskii <eliz@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@gko.net                      2016-10-10






^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-10-10  9:54 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-07  4:59 bug#24634: 25.1 on Windows (native and cygwin+w32): high CPU load with "wavy" characters Georges Ko
2016-10-07  7:16 ` Nikolay Kudryavtsev
2016-10-07  8:05 ` Eli Zaretskii
2016-10-07 17:01   ` Georges Ko
2016-10-07 19:03     ` Eli Zaretskii
2016-10-08  2:59       ` Georges Ko
2016-10-08  6:21         ` Eli Zaretskii
2016-10-08  8:20           ` Georges Ko
2016-10-08 14:11             ` Georges Ko
2016-10-08 14:43               ` Eli Zaretskii
2016-10-08 15:24                 ` Georges Ko
2016-10-08 19:34                   ` Eli Zaretskii
2016-10-10  9:54                     ` Georges Ko

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).