Skip to content
  • Alan Coopersmith's avatar
    Convert from Xlib to xcb · 96f19bad
    Alan Coopersmith authored
    
    
    Testing was done with a simple GNOME 2.28 session with a number of
    applications open (gnome-terminal, VirtualBox, Firefox).
    
    Primary test case was xwininfo -root -all, which listed 114 children of
    the root window.   Output was identical to Xlib version (after applying
    the fix to libxcb_icccm for always null-terminating wm_class properties).
    
    Over a local connection on the same machine:
    
    Xlib:	0.00u 0.01s 0:00.05 20.0%
    xcb:	0.00u 0.00s 0:00.02 0.0%
    
    (i.e. barely measurable difference - I had more variation between
     repeated runs of the command)
    
    Introducing latency by running over ssh -X from California to Beijing
    and back:
    
    Xlib:	0.03u 0.02s 8:19.12 0.0%
    xcb:	0.00u 0.00s 0:45.26 0.0%
    
    Memory size when exit() is called:
    
    Xlib:
     Address  Kbytes     RSS    Anon  Locked Mode   Mapped File
    08043000      20      20      20       - rw---    [ stack ]
    08400000     144     144     144       - rw---    [ heap ]
    total Kb    8972    8640     316       -
    
    xcb:
     Address  Kbytes     RSS    Anon  Locked Mode   Mapped File
    08045000      12      12      12       - rwx--    [ stack ]
    0806C000     100     100     100       - rwx--    [ heap ]
    total Kb    7980    7692     288       -
    
    Bytes sent & received (counted by proxying via xscope):
    
    Xlib: Client --> Server: 21380 bytes   Client <-- Server:  54124 bytes
    xcb:  Client --> Server: 21114 bytes   Client <-- Server:  53160 bytes
    
    (The Xlib code didn't save any replies, so re-requested a couple of things
     when running with -all - I fixed that while porting to xcb, but the same
     could be done with Xlib easily too.)
    
    Not yet handled: WM_NAME properties that need to be converted from another
    character encoding.
    
    Signed-off-by: default avatarAlan Coopersmith <alan.coopersmith@oracle.com>
    Reviewed-by: default avatarJames Cloos <cloos@jhcloos.com>
    96f19bad
This project is licensed under the MIT License. Learn more