Heyla,
a couple of days ago I checked into CVS an optimisation which will
significantly improve performance for simple rxvt windows, i.e. not
using transparency or pixmaps.  I've found it very noticeable with
network displays with some servers.  From an inspection of code,
versions 2.6.2 and up will definitely have this problem.  Prior
versions _may_ not.

Here are some benchmarks of performance of some rxvt versions.
I've included benchmarks for xterm but the tests are probably biased
towards rxvt features (hard and fast scrolling) so take care when
interpreting xterm times.

I've also included memory usage figures obtained at the end of each
run.  It's possible to bias data so that with several thousand
scrollback lines rxvt 2.21 versions and prior will use less memory
than the current version.  I consider that as very unlikely in normal
usage and haven't produce final memory figures for that case. 

This is a limited benchmark: it's been run on x86 series processors.
Other processor architectures may produce quite different results.

There are 4 sets of figures.  Local displays using no scrollback lines,
64 scrollback lines (the default for rxvt and xterm), and 2000 scrollback
lines.  And a network display using no scrollback lines (the point here
is to demonstrate output speed rather than internal manipulation of
scrollback data which rxvt 2.21 and prior suffer from significantly).

Regards,
Geoff

======================================================================
======================================================================
Local machine:  200MHz Pentium        NetBSD  (XFree86 3.3.6)
Remote machine: Dual 233MHz PentiumII Win2000 (StarNet X-Win 5.1.1)

xterm version: XFree86 4.0.2(150)
rxvt-2.7.5                        (--enable-everything)
rxvt-20010321 snapshot 2001/03/21 (--enable-everything --enable-strings)
rxvt-minimal  snapshot 2001/03/21 ()

my base sizes: 
text    data    bss     dec     hex     filename
162773  15432   11552   189757  2e53d   /usr/X11R6/bin/xterm
72431   1444    3616    77491   12eb3   /usr/X11R6/bin/rxvt-2.21a5
104568  1040    728     106336  19f60   /usr/X11R6/bin/rxvt-2.7.5
103116  996     696     104808  19968   /usr/X11R6/bin/rxvt
60801   768     672     62241   f321    /usr/X11R6/bin/rxvt-minimal

Notes:  from memory, it's possible to produce a rxvt-2.21 binary which
uses about the same _base_ amount as the minimal version from a current
snapshot.  However, if you add in all the features for that version you
use around 20k more and you're still missing lots of features the current
version has.

======================================================================
hard and fast scrolling.  10000 lines.  0 scrollback lines.
local display:
xterm            3.12s user 0.93s system 39% cpu 10.265 total
xterm            3.09s user 0.82s system 38% cpu 10.202 total
xterm            3.19s user 0.80s system 38% cpu 10.393 total
xterm            3.07s user 1.00s system 39% cpu 10.329 total
xterm            3.07s user 0.95s system 40% cpu  9.939 total
rxvt-2.21a5      2.13s user 0.59s system 29% cpu  9.370 total
rxvt-2.21a5      2.57s user 0.60s system 33% cpu  9.541 total
rxvt-2.21a5      2.55s user 0.71s system 33% cpu  9.781 total
rxvt-2.21a5      2.24s user 0.63s system 30% cpu  9.468 total
rxvt-2.21a5      2.23s user 0.68s system 30% cpu  9.582 total
rxvt-2.7.5       2.03s user 0.69s system 35% cpu  7.557 total
rxvt-2.7.5       2.34s user 0.66s system 30% cpu  9.887 total
rxvt-2.7.5       2.18s user 0.71s system 29% cpu  9.658 total
rxvt-2.7.5       2.37s user 0.64s system 28% cpu 10.715 total
rxvt-2.7.5       2.18s user 0.70s system 30% cpu  9.588 total
rxvt-20010321    1.53s user 0.76s system 46% cpu  4.877 total
rxvt-20010321    1.64s user 0.75s system 45% cpu  5.234 total
rxvt-20010321    1.70s user 0.71s system 46% cpu  5.216 total
rxvt-20010321    1.61s user 0.76s system 46% cpu  5.143 total
rxvt-20010321    1.66s user 0.66s system 44% cpu  5.190 total

USER  VSZ  RSS  COMMAND
root  384 2100  xterm
gcw   252 1340  rxvt-2.21a5
gcw   292 1480  rxvt-2.7.5
gcw   292 1492  rxvt-20010321
gcw   168 1232  rxvt-minimal

======================================================================
hard and fast scrolling.  10000 lines.  64 scrollback lines:
local display:
xterm            3.26s user 0.95s system 40% cpu 10.398 total
xterm            3.38s user 0.86s system 40% cpu 10.493 total
xterm            3.16s user 0.94s system 27% cpu 15.077 total
xterm            3.38s user 1.10s system 42% cpu 10.537 total
xterm            3.30s user 1.00s system 40% cpu 10.705 total
rxvt-2.21a5      6.35s user 0.72s system 24% cpu 28.995 total
rxvt-2.21a5      7.33s user 0.57s system 21% cpu 36.004 total
rxvt-2.21a5      7.01s user 0.59s system 25% cpu 29.460 total
rxvt-2.21a5      8.22s user 0.63s system 28% cpu 30.885 total
rxvt-2.21a5      9.03s user 0.65s system 30% cpu 32.019 total
rxvt-2.7.5       2.22s user 0.66s system 28% cpu  9.979 total
rxvt-2.7.5       2.05s user 0.85s system 30% cpu  9.640 total
rxvt-2.7.5       1.97s user 0.73s system 30% cpu  8.764 total
rxvt-2.7.5       2.26s user 0.67s system 30% cpu  9.535 total
rxvt-2.7.5       2.24s user 0.59s system 28% cpu  9.770 total
rxvt-20010321    1.72s user 0.70s system 47% cpu  5.069 total
rxvt-20010321    1.86s user 0.55s system 45% cpu  5.248 total
rxvt-20010321    1.85s user 0.60s system 46% cpu  5.265 total
rxvt-20010321    1.81s user 0.62s system 47% cpu  5.078 total
rxvt-20010321    1.80s user 0.65s system 47% cpu  5.172 total

USER  VSZ  RSS  COMMAND
root  400 2116  xterm
gcw   280 1368  rxvt-2.21a5
gcw   304 1492  rxvt-2.7.5
gcw   304 1504  rxvt-20010321
gcw   192 1260  rxvt-minimal

======================================================================
hard and fast scrolling.  10000 lines.  2000 scrollback lines:
local display:
xterm           16.96s user 0.96s system 73% cpu   24.229 total
xterm           13.72s user 1.39s system 70% cpu   21.471 total
xterm           14.53s user 0.94s system 70% cpu   21.903 total
xterm           13.77s user 1.34s system 69% cpu   21.656 total
rxvt-2.21a5    155.13s user 0.74s system 81% cpu 3:10.96  total
rxvt-2.21a5    150.26s user 0.90s system 80% cpu 3:07.39  total
rxvt-2.21a5    153.43s user 1.05s system 81% cpu 3:09.44  total
rxvt-2.21a5    158.72s user 0.83s system 86% cpu 3:03.90  total
rxvt-2.7.5       7.50s user 0.78s system 53% cpu   15.611 total
rxvt-2.7.5       5.72s user 0.66s system 46% cpu   13.577 total
rxvt-2.7.5       6.55s user 0.77s system 50% cpu   14.567 total
rxvt-2.7.5       6.11s user 0.71s system 49% cpu   13.672 total
rxvt-20010321    6.17s user 0.70s system 70% cpu    9.785 total
rxvt-20010321    6.93s user 0.68s system 72% cpu   10.547 total
rxvt-20010321    5.31s user 0.68s system 67% cpu    8.835 total
rxvt-20010321    5.74s user 0.82s system 69% cpu    9.437 total

USER   VSZ  RSS  COMMAND
root  1048 2764  xterm
gcw   1048 2136  rxvt-2.21a5
gcw   1068 2256  rxvt-2.7.5
gcw   1068 2268  rxvt-20010321
gcw    952 2020  rxvt-minimal

======================================================================
hard and fast scrolling.  10000 lines.  0 scrollback lines:
remote display:
xterm            2.45s user 2.03s system 28% cpu 15.946 total
xterm            2.58s user 1.85s system 27% cpu 15.944 total
xterm            2.67s user 1.88s system 27% cpu 16.467 total
xterm            2.67s user 1.89s system 27% cpu 16.869 total
xterm            2.73s user 1.76s system 29% cpu 15.417 total
rxvt-2.21a5      2.36s user 0.64s system 24% cpu 12.314 total
rxvt-2.21a5      2.60s user 0.73s system 27% cpu 12.286 total
rxvt-2.21a5      2.75s user 0.65s system 27% cpu 12.390 total
rxvt-2.21a5      3.13s user 0.70s system 31% cpu 12.208 total
rxvt-2.21a5      3.17s user 0.87s system 32% cpu 12.427 total
rxvt-2.7.5       2.48s user 0.75s system 10% cpu 30.274 total
rxvt-2.7.5       2.48s user 0.71s system 10% cpu 31.191 total
rxvt-2.7.5       2.45s user 0.77s system 10% cpu 31.065 total
rxvt-2.7.5       2.29s user 0.73s system  9% cpu 31.332 total
rxvt-2.7.5       2.38s user 0.88s system 10% cpu 31.312 total
rxvt-20010321    1.44s user 0.81s system 31% cpu  7.200 total
rxvt-20010321    1.68s user 0.59s system 30% cpu  7.420 total
rxvt-20010321    1.72s user 0.58s system 31% cpu  7.293 total
rxvt-20010321    1.79s user 0.53s system 31% cpu  7.323 total
rxvt-20010321    1.87s user 0.77s system 36% cpu  7.145 total

======================================================================

-- 
Geoff Wing : <[EMAIL PROTECTED]>
Rxvt Stuff : <[EMAIL PROTECTED]>
Zsh Stuff  : <[EMAIL PROTECTED]>

Reply via email to