emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Split `simple.el'?


From: Stefan Monnier
Subject: Re: Split `simple.el'?
Date: Fri, 06 Apr 2018 15:25:55 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

>> OK, I just tried it on my office's 2006 mac-mini (Core 2 Duo T7600)
>> where the above says it has 437 fonts installed (removing the iso10646
>> constraint brings it up to 614):
> I get 1244 and 1703, respectively, almost 3 times as many.

And Drew seems to have yet another factor of 3 more.

>> So a "normal" start takes ~0.7s and visiting the hello file brings it to
>> ~1.5s hence adding less than a second.
> I get 0.48s and 10.26s elapsed respectively, with 6s CPU time usage
> for visiting HELLO.

Wow, so almost 10s to display HELLO, compared to less than 1s in my case.
That's a factor 10, i.e. significantly more than a factor 3.

> I have three time as many fonts, and Emacs on Windows checks 2 font
> back-ends before it gives up on characters that don't have any font
> supporting them.

Does this mean the same 1244 fonts (or a significant subset of them) get
considered twice?  If not, then it shouldn't necessarily make much of
a difference, right?

On X11 we also have several backends, and they probably have some
overlap, but I'm not sure which ones are actively in use in my case.

> The rest is OS differences regarding enumerating fonts and caching
> them (or lack thereof) by the font back-end.

That seems to impose a factor somewhere between 1.6 and 3.3 (depending
on the impact of the double font backends) of slowdown in your case
compared to mine.  That doesn't sound outlandish.

> As for "ancient", this is a 6 year-old core i7 box.  But I don't think
> CPU power is the main cost driver here, because I get the same times
> from optimized and non-optimized builds.

I think it is CPU-bound, but most of the CPU time is spent in libraries
rather than in our own code.


        Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]