Re: Switching to ncurses

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

 



Miroslav Lichvar wrote:

libncurses is much bigger than libtermcap, and also has
oddly large .bss and .data sections:

bender:/[1/0]# size /lib64/libncurses.so.5 /lib64/libtermcap.so.2
  text    data     bss     dec     hex filename
319006   56608    3592  379206   5c946 /lib64/libncurses.so.5
 10483     788     112   11383    2c77 /lib64/libtermcap.so.2

this is going to impact very negatively on the RSS of several
critical programs such as bash and python.

$ ps -o rss,comm
  RSS COMMAND
 1428 bash_termcap
 1480 bash_curses

Not sure it proves anything.

We see almost exactly the +50KB size difference reported
by "size".

The fact that bash also carries an additional 1400KB of bloat
does not make the ncurses problem more appealing : - )


Note that termcap has everything in one big file. A simple program
doing just tgetent() and tgetstr() is significantly faster with
ncurses.

I too dislike big binary files, but I would at least hope it's being
loaded with mmap() and/or has at least an index to seek to the correct
terminal as an O(1) operation.


$ time ( a=0;while [ $a -lt 1000 ]; do a=$[$a + 1] && ./testtermcap <
/dev/null &> /dev/null; done )

real	0m2.078s
user	0m1.137s
sys	0m0.936s

$ time ( a=0;while [ $a -lt 1000 ]; do a=$[$a + 1] && ./testncurses <
/dev/null &> /dev/null; done )

real	0m1.464s
user	0m0.496s
sys	0m0.962s

Hmmm!  So termcap also has algoritmic disadvantages that outweight
its smaller size relative to ncurses.

This makes me prefer ncurses over termcap, but fixing its abnormal
data+bss size is still very desiderable.

--
  // Bernardo Innocenti - Develer S.r.l., R&D dept.
\X/  http://www.develer.com/

--
fedora-devel-list mailing list
fedora-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-devel-list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux