[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic
From: |
Thomas Dickey |
Subject: |
Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic |
Date: |
Thu, 27 Dec 2018 20:43:20 -0500 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Thu, Dec 27, 2018 at 07:09:09PM -0600, Bryan Christ wrote:
> I was testing the performance of pair_content() 2 different ways.
>
> 1. The very unscientific, observation that "pspg" (a db pager) was
> scrolling
https://github.com/okbob/pspg
> very slowly horizontally when testing my emulator on F29 but not on Bionic.
> 2. I placed both instances under callgrind which surfaced pair_content() as
> being quite consuming on F29 but not Bionic.
Then that would show the number of calls (as well as some measure of time).
> Since my terminal emulator really has no idea how the caller setup their
> color pair matrix/bindings, the only reliable thing I can do is iterate
> through the enumerated pairs looking for the fg / bg set they specified.
> Albeit, I was already planning to write and interface that allows the
> implementer to supply their own interface equivalent to pair_content() with
> the assumption that the caller has intimate knowledge of the mappings. For
> my own demo program, I did that, and the performance I expected returned.
I see. I had in mind something that would iterate over a few million
calls (enough to get some useful timing on the pair_content logic).
> The observations/differences were noted in both xfce4-terminal and
> gnome-terminal in F29 vs Bionic. A quick peek at both shows that in all
> cases TERM is set to xterm-color256 so I doubt there's a big difference
> there.
sure there is: one has twice as many color pairs.
You can see that using infocmp. I did that, and also checked the
curses.h header file to see which features were enabled.
Bionic has the _source_ for ncurses 6.1, but uses ABI 5 (pre-2015).
Offhand, with ABI 6 you'll use more memory but for the same calls,
probably get roughly the same performance. A small benchmark
would prove that one way or the other :-)
The problem with some random program is that there's usually little
care about managing large numbers of color pairs.
> On Thu, Dec 27, 2018 at 6:44 PM Thomas Dickey <address@hidden> wrote:
>
> > On Thu, Dec 27, 2018 at 05:30:55PM -0600, Bryan Christ wrote:
> > > I spent quite a bit of time tracing down performance issues on Fedora 29.
> > > It turns out, that for whatever reason, pair_content() is about 7x slower
> > > in the ncurses build that comes with Fedora 29 vs the build included with
> > > Bionic Beaver.
> >
> > In a quick check, it seems that Fedora 29's using ABI 6 (infocmp hints that
> > supports 6.1's extended pairs) while Bionic is still using ABI 5:
> > + no wheel-mouse
> > + limited to 16 colors
> >
> > Is this for the same terminal description? How are you testing
> > pair_content?
> > With ABI 6 (whether or not using 6.1), you can have a lot more color pairs,
> > which may be misleading.
> >
> > fwiw, Debian/testing seems fairly comparable to Fedora29. Ubuntu lags
> > that by a year or two -ymmv
--
Thomas E. Dickey <address@hidden>
https://invisible-island.net
ftp://ftp.invisible-island.net
signature.asc
Description: Digital signature
- API pair_content() call is about 7x slower on Fedora 29 vs Bionic, Bryan Christ, 2018/12/27
- Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic, Thomas Dickey, 2018/12/27
- Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic, Bryan Christ, 2018/12/27
- Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic,
Thomas Dickey <=
- Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic, Pavel Stehule, 2018/12/28
- Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic, Thomas Dickey, 2018/12/28
- Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic, Pavel Stehule, 2018/12/28
- Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic, Bryan Christ, 2018/12/28
- Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic, Thomas Dickey, 2018/12/29
- Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic, Bryan Christ, 2018/12/29
- Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic, Thomas Dickey, 2018/12/29
- Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic, Bryan Christ, 2018/12/30
- Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic, Thomas Dickey, 2018/12/30
- Re: API pair_content() call is about 7x slower on Fedora 29 vs Bionic, Bryan Christ, 2018/12/28