unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Georges Ko <gko@gko.net>
To: 24634@debbugs.gnu.org
Subject: 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	[thread overview]
Message-ID: <bw5nmviggkjv.fsf@gko.net> (raw)
In-Reply-To: <yd8r37k8iwkd.fsf@gko.net>

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






  reply	other threads:[~2016-10-07 17:01 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bw5nmviggkjv.fsf@gko.net \
    --to=gko@gko.net \
    --cc=24634@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).