unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "Clément Pit--Claudel" <clement.pitclaudel@live.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 21028@debbugs.gnu.org
Subject: bug#21028: Performance regression in revision af1a69f4d17a482c359d98c00ef86fac835b5fac (Apr 2014).
Date: Thu, 9 Feb 2017 23:45:24 -0500	[thread overview]
Message-ID: <e09763c6-693c-4c57-1b6d-d8d1ca555662@live.com> (raw)
In-Reply-To: <e4dd2e42-bcf3-a907-c7a9-972e7afa55c5@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 3559 bytes --]

On 2016-12-22 14:08, Clément Pit--Claudel wrote:
> On 2016-12-22 13:04, Eli Zaretskii wrote:
>> I would like to try and understand the problem.  For that I need a
>> minimal setup that will show the problem while still making sense,
>> i.e. when the characters in the buffer are displayed by the offending
>> font.  A setup with a font that is not actually used for display
>> doesn't seem to be sensible; if showing the problem with real
>> characters requires a somewhat more elaborate setup, please show it.

Hi Eli,

Here's a minimal recipe :) I followed these steps:

1. Downloaded a copy of Linux Mint 18.1 at https://linuxmint.com/edition.php?id=226
2. Installed it in VirtualBox, without proprietary add-ons (I turned on 3D acceleration in VBox's settings)
3. Installed VirtualBox's guest additions
4. Downloaded Emacs 25.1 from http://ftpmirror.gnu.org/emacs/
5. Extracted it to ~/emacs/emacs-25.1
6. Installed dependencies: sudo apt install libmagickwand-dev libgtk-3-dev libxpm-dev libjpeg-dev libgif-dev libtiff-dev libgconf2-dev librsvg2-dev libselinux1-dev libgnutls-dev libxml2-dev libfreetype6-dev libm17n-dev libotf-dev libsystemd-dev libncurses-dev texinfo
7. Compiled emacs: ./configure; make -j12
8. Ran emacs and confirmed that it was working normally
9. Downloaded XITS Math from https://raw.githubusercontent.com/khaledhosny/xits-math/master/xits-math.otf and saved it to ~/.fonts
10. Updated the font cache using fc-cache
11. Ran the following command: src/emacs -Q --eval "(progn (set-fontset-font \"fontset-startup\" 'unicode \"Ubuntu Mono\" nil) (set-fontset-font \"fontset-startup\" 'unicode \"XITS Math\" nil 'append) (dotimes (_ 500) (insert (make-string 20 8658) \"\n\")))"
12. Confirmed that XITS math was in use:
             position: 10472 of 10500 (100%), column: 13
            character: ⇒ (displayed as ⇒) (codepoint 8658, #o20722, #x21d2)
    preferred charset: unicode (Unicode (ISO10646))
code point in charset: 0x21D2
               script: symbol
               syntax: . 	which means: punctuation
             category: .:Base, h:Korean, j:Japanese
             to input: type "C-x 8 RET 21d2" or "C-x 8 RET RIGHTWARDS DOUBLE ARROW"
          buffer code: #xE2 #x87 #x92
            file code: #xE2 #x87 #x92 (encoded by coding system utf-8-unix)
              display: by this font (glyph code)
    xft:-STIX-XITS Math-normal-normal-normal-*-13-*-*-*-*-0-iso10646-1 (#x448)
13. Ran a simple benchmark: time src/emacs -Q --eval "(progn (set-fontset-font \"fontset-startup\" 'unicode \"Ubuntu Mono\" nil) (set-fontset-font \"fontset-startup\" 'unicode \"XITS Math\" nil 'append) (dotimes (_ 500) (insert (make-string 20 8658) \"\n\") (run-with-idle-timer 0 nil #'kill-emacs)))"
    real	0m5.807s
    user	0m1.064s
    sys	0m1.260s
14. Compared this to the same benchmark without XITS Math: time src/emacs -Q --eval "(progn (dotimes (_ 500) (insert (make-string 20 8658) \"\n\") (run-with-idle-timer 0 nil #'kill-emacs)))"
    real	0m0.439s
    user	0m0.236s
    sys	0m0.032s

This sequence of steps yields an unusably slow copy of Emacs.  The font setup in that last step ensures that Emacs falls back to XITS Math for all characters that Ubuntu Mono does not handle.  This is my usual setup for programming with proof assistants (Agda and Coq), as I want a consistent fallback for symbols not covered by Ubuntu Mono.

Let me know if this helps!  I'll be happy to share a copy of the VM, too, if needed.

Cheers and thanks for your help,
Clément.






[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2017-02-10  4:45 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-10 10:34 bug#21028: Performance regression in revision af1a69f4d17a482c359d98c00ef86fac835b5fac (Apr 2014) Clément Pit--Claudel
2015-07-10 12:30 ` Eli Zaretskii
2015-07-10 16:02   ` Clément Pit--Claudel
2015-07-10 12:41 ` Eli Zaretskii
2015-07-10 16:55   ` Clément Pit--Claudel
2015-07-15 12:32     ` Dmitry Antipov
2015-07-18 10:24       ` Clément Pit--Claudel
2015-07-18 11:16         ` Clément Pit--Claudel
2015-07-18 11:26           ` Eli Zaretskii
2015-07-18 20:08             ` Clément Pit--Claudel
2016-03-03  6:12       ` Clément Pit--Claudel
2016-03-03  6:42         ` Clément Pit--Claudel
2016-03-03  7:08           ` Clément Pit--Claudel
2016-03-03  7:33             ` Clément Pit--Claudel
2016-03-03 17:10               ` Glenn Morris
2016-03-03 17:28                 ` Clément Pit--Claudel
2016-03-03 20:27               ` Eli Zaretskii
2016-07-20 21:26                 ` Clément Pit--Claudel
2016-07-21 14:21                   ` Eli Zaretskii
2016-07-21 14:33                     ` Clément Pit--Claudel
2016-07-23 20:50                     ` Clément Pit--Claudel
2016-10-04 22:17                       ` Clément Pit--Claudel
2016-10-26 17:15                         ` Clément Pit--Claudel
2016-10-27 14:38                           ` Eli Zaretskii
2016-10-27 15:29                             ` Clément Pit--Claudel
2016-10-27 15:55                               ` Eli Zaretskii
2016-10-28 14:23                                 ` Clément Pit--Claudel
2016-10-28 14:33                                   ` Eli Zaretskii
2016-11-18  8:55                                     ` Eli Zaretskii
2016-12-18 17:33                                     ` Clément Pit--Claudel
2016-12-18 17:37                                       ` Eli Zaretskii
2016-12-18 18:04                                         ` Clément Pit--Claudel
2016-12-18 19:52                                           ` Eli Zaretskii
2016-12-18 20:44                                             ` Clément Pit--Claudel
2016-12-19 15:50                                               ` Eli Zaretskii
2016-12-19 16:25                                                 ` Clément Pit--Claudel
2016-12-19 16:39                                                   ` Eli Zaretskii
2016-12-19 16:55                                                     ` Clément Pit--Claudel
2016-12-19 16:58                                                       ` Eli Zaretskii
2016-12-19 17:13                                                         ` Clément Pit--Claudel
2016-12-22 16:25                                                           ` Eli Zaretskii
2016-12-22 16:49                                                             ` Clément Pit--Claudel
2016-12-22 18:04                                                               ` Eli Zaretskii
2016-12-22 19:08                                                                 ` Clément Pit--Claudel
2017-02-10  4:45                                                                   ` Clément Pit--Claudel [this message]
2017-03-12 11:38                                                                     ` Clément Pit--Claudel
2017-03-12 15:49                                                                       ` Eli Zaretskii
2017-03-12 17:24                                                                         ` Clément Pit--Claudel
2017-03-12 17:48                                                                           ` Eli Zaretskii
2017-03-12 19:19                                                                             ` Clément Pit--Claudel
2017-03-13 15:46                                                                               ` Eli Zaretskii
2017-03-13 16:36                                                                                 ` Clément Pit--Claudel
2017-03-13 17:22                                                                                   ` Eli Zaretskii
2017-03-13 19:04                                                                                     ` Clément Pit--Claudel
2017-03-13 20:53                                                                                       ` Eli Zaretskii
2017-03-14 19:45                                                                                         ` Clément Pit--Claudel
2017-03-15 15:37                                                                                           ` Eli Zaretskii
2017-03-14 15:45                                                                                       ` Eli Zaretskii
2017-03-14 19:35                                                                                         ` Clément Pit--Claudel
2017-03-15 15:36                                                                                           ` Eli Zaretskii
2017-03-15 20:46                                                                                             ` Clément Pit--Claudel
2017-03-16 15:27                                                                                               ` Eli Zaretskii
2017-03-16 21:23                                                                                                 ` Clément Pit--Claudel
2017-03-17  8:15                                                                                                   ` Eli Zaretskii
2017-04-16  7:48                                                                                                 ` Eli Zaretskii
2017-04-16 15:28                                                                                                   ` Clément Pit--Claudel
2016-12-19 17:00                                                     ` Clément Pit--Claudel
2015-07-10 15:42 ` Glenn Morris
2016-03-03  6:37   ` Clément Pit--Claudel
2016-10-04 18:56 ` Jason Gross
2017-03-13 15:54 ` bug#21028: Slow font rendering in emacs Ralf Jung
2017-03-13 17:05   ` Eli Zaretskii
2017-03-13 18:12     ` Ralf Jung
2017-03-13 20:39       ` Eli Zaretskii
2017-03-14 15:57         ` Ralf Jung
2017-03-14 17:11           ` Eli Zaretskii
2017-03-14 18:50             ` Ralf Jung
2017-03-14 19:16               ` Eli Zaretskii
2017-03-14 19:17             ` Ralf Jung
2017-03-14 20:49             ` John Mastro
2017-03-15 15:40               ` Eli Zaretskii
2017-03-14 15:47   ` Eli Zaretskii
2017-03-14 18:41     ` Ralf Jung
2017-03-14 19:16       ` Eli Zaretskii
2017-03-14 19:39         ` Ralf Jung
2017-03-14 19:45           ` Ralf Jung
2017-03-15 15:36           ` Eli Zaretskii
2017-04-22  8:54             ` Ralf Jung
2017-04-22 13:40               ` Eli Zaretskii

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=e09763c6-693c-4c57-1b6d-d8d1ca555662@live.com \
    --to=clement.pitclaudel@live.com \
    --cc=21028@debbugs.gnu.org \
    --cc=eliz@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).