From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#21028: Performance regression in revision af1a69f4d17a482c359d98c00ef86fac835b5fac (Apr 2014). Date: Mon, 13 Mar 2017 19:22:45 +0200 Message-ID: <83y3w9ay6y.fsf@gnu.org> References: <559F9FAF.8090708@live.com> <83bmy5u6qo.fsf@gnu.org> <2fd3e21c-37b9-d559-6306-4e8adebad3d5@gmail.com> <831sz0sfug.fsf@gnu.org> <83oa095eaw.fsf@gnu.org> <83lgvd581m.fsf@gnu.org> <83a8br6hq0.fsf@gnu.org> <672a0c69-4352-735f-cba4-025e642626ea@gmail.com> <83vauf50wb.fsf@gnu.org> <7408d59c-92ba-b879-5ac1-3cd5eee9b4db@gmail.com> <83tw9z4zzp.fsf@gnu.org> <2cad0da9-c931-b547-07bb-efec2f2bcf1f@gmail.com> <83h95w0w3p.fsf@gnu.org> <27853273-e6d8-077e-b9e0-b2bec2fe1fae@gmail.com> <834m1v2630.fsf@gnu.org> <1c224dc1-bd71-a910-b7cf-00313e4aec40@live.com> <83efy2cx5n.fsf@gnu.org> <3c3e8384-3412-f5a5-3ab2-a7eb4e699f1c@live.com> <83d1dmcrnl.fsf@gnu.org> <39fe847e-ef8a-149f-4478-d02e7c794c9a@live.com> <837f3tch7y.fsf@gnu.org> <1e7bc066-3f29-3897-5039-de7233efc58a@live.com> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1489425906 25794 195.159.176.226 (13 Mar 2017 17:25:06 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 13 Mar 2017 17:25:06 +0000 (UTC) Cc: 21028@debbugs.gnu.org To: =?UTF-8?Q?Cl=C3=A9ment?= Pit--Claudel Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Mar 13 18:25:02 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cnTiM-0005sA-NL for geb-bug-gnu-emacs@m.gmane.org; Mon, 13 Mar 2017 18:24:58 +0100 Original-Received: from localhost ([::1]:53507 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cnTiS-0007nC-SQ for geb-bug-gnu-emacs@m.gmane.org; Mon, 13 Mar 2017 13:25:04 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57602) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cnThW-0007K5-Jk for bug-gnu-emacs@gnu.org; Mon, 13 Mar 2017 13:24:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cnThS-0005ZW-1t for bug-gnu-emacs@gnu.org; Mon, 13 Mar 2017 13:24:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:55956) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cnThR-0005ZQ-UK for bug-gnu-emacs@gnu.org; Mon, 13 Mar 2017 13:24:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cnThR-0003e6-OE for bug-gnu-emacs@gnu.org; Mon, 13 Mar 2017 13:24:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 13 Mar 2017 17:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 21028 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 21028-submit@debbugs.gnu.org id=B21028.148942579213958 (code B ref 21028); Mon, 13 Mar 2017 17:24:01 +0000 Original-Received: (at 21028) by debbugs.gnu.org; 13 Mar 2017 17:23:12 +0000 Original-Received: from localhost ([127.0.0.1]:54155 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cnTge-0003d4-1F for submit@debbugs.gnu.org; Mon, 13 Mar 2017 13:23:12 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:37762) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cnTgd-0003cr-2l for 21028@debbugs.gnu.org; Mon, 13 Mar 2017 13:23:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cnTgT-00053G-3F for 21028@debbugs.gnu.org; Mon, 13 Mar 2017 13:23:05 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:49871) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cnTgS-00053B-WA; Mon, 13 Mar 2017 13:23:01 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3633 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cnTgS-00036z-EC; Mon, 13 Mar 2017 13:23:00 -0400 In-reply-to: <1e7bc066-3f29-3897-5039-de7233efc58a@live.com> (message from =?UTF-8?Q?Cl=C3=A9ment?= Pit--Claudel on Mon, 13 Mar 2017 12:36:25 -0400) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:130547 Archived-At: > Cc: 21028@debbugs.gnu.org > From: Clément Pit--Claudel > Date: Mon, 13 Mar 2017 12:36:25 -0400 > > On 2017-03-13 11:46, Eli Zaretskii wrote: > > I installed Fira Sans and Noto Sans, and changed your program to insert > > more of these characters and actually display all the characters it > > inserts (see below). > > Thanks, that's a much better repro than mine :) Here are my timings: > > # Stock 24.5 > 12:01:26 /build/emacs > $ time 24.5/src/emacs -Q --eval "(progn (set-fontset-font \"fontset-startup\" 'unicode \"Noto Sans\" nil) (set-fontset-font \"fontset-startup\" 'unicode \"Symbola\" nil 'append) (dotimes (_ 5000) (insert (make-string 20 8658) \"\n\")) (goto-char (point-min)) (sit-for 0) (condition-case nil (while t (scroll-up) (sit-for 0)) (error nil)) (run-with-idle-timer 0 nil #'kill-emacs))" > real 1m1.862s > user 0m18.644s > sys 0m15.972s > > # Stock 25.1 > $ time 25.1/src/emacs -Q --eval "(progn (set-fontset-font \"fontset-startup\" 'unicode \"Noto Sans\" nil) (set-fontset-font \"fontset-startup\" 'unicode \"Symbola\" nil 'append) (dotimes (_ 5000) (insert (make-string 20 8658) \"\n\")) (goto-char (point-min)) (sit-for 0) (condition-case nil (while t (scroll-up) (sit-for 0)) (error nil)) (run-with-idle-timer 0 nil #'kill-emacs))" > real 1m4.705s > user 0m18.296s > sys 0m18.444s > > # Master with your patch > $ time master/src/emacs -Q --eval "(progn (set-fontset-font \"fontset-startup\" 'unicode \"Noto Sans\" nil) (set-fontset-font \"fontset-startup\" 'unicode \"Symbola\" nil 'append) (dotimes (_ 5000) (insert (make-string 20 8658) \"\n\")) (goto-char (point-min)) (sit-for 0) (condition-case nil (while t (scroll-up) (sit-for 0)) (error nil)) (run-with-idle-timer 0 nil #'kill-emacs))" > real 0m1.207s > user 0m0.928s > sys 0m0.028s I see nothing of the kind, as you saw. With the same fonts as you use. So it's definitely not a problem with the fonts. Which is strange, since the profiles you provided seem to indicate a font-related problem. > > If I don't specify the "normal" font in the fontset, only Symbola, or > > if I don't specify fonts at all (Symbola is used by default for the > > character in question), then I get timings like the one below: > > I get similar timings. So why not use Symbola (i.e. the default fontset setup)? >In real life, I have more than 6 fonts, all covering different subsets (I linked to my own config in a previous post in this thread). I don't know exactly what Ubuntu Mono covers, and in fact that changes from time to time, so I just want it to display everything it can (hence the first invocation with 'unicode). Then I want to use Segoe UI for emoji, so I use a range for that. And then I then want Symbola to be used for any symbol that it covers that are not covered by the previous two fonts — hence the second call with 'unicode. I then have a few fonts for various CJK ranges, but even there I don't know what exact range each font covers. Symbola supports emoji in the default fontset, so neither Segoe UI nort Symbola should be needed in your setup. As for Ubuntu Mono, isn't that the default monospaced font? In short, are you sure you really need those customizations? You may be creating your own problems. > But I guess it boils down to: "⇒" is not the only symbol I use, and I don't want to encode all ranges supported by Symbola explicitly in my emacs config (nor, of course, all the CJK ranges supported by the barious fonts I use for east-asian scripts). As I noted previously, remember that the original bug report didn't even use symbols (I ran into this when trying to edit text written in Chinese in Emacs. The default fontset should already provide you with the fonts that display all of these, including CJK. If you use the default, what characters aren't displayed well enough, or at all? Is this the complete fontset setup you are using: (let ((cjk-font "WenQuanYi Micro Hei Mono") (fontset t)) ; "fontset-default" (set-fontset-font t (cons ?≔ ?≔) "FreeSerif" nil 'prepend) (set-fontset-font fontset 'unicode (font-spec :name "Consolas") nil 'append) (set-fontset-font fontset 'unicode (font-spec :name "Symbola") nil 'append) (set-fontset-font fontset '(#x4E00 . #x9FFF) (font-spec :name cjk-font)) (set-fontset-font fontset '(#x3400 . #x4DFF) (font-spec :name cjk-font)) (set-fontset-font fontset '(#x20000 . #x2A6DF) (font-spec :name cjk-font)) (set-fontset-font fontset '(#xF900 . #xFAFF) (font-spec :name cjk-font)) (set-fontset-font fontset '(#x2F800 . #x2FA1F) (font-spec :name cjk-font))) If it is, I will try to reproduce using this fontset.