• Joel Martin's avatar
    Indexed receive queue. Up to 2X speedup in Chrome. · 67b4e987
    Joel Martin authored
    Generally, most servers send hextile updates as single updates
    containing many rects. Some servers send hextile updates as many small
    framebuffer updates with a few rects each (such as QEMU). This latter
    cases revealed that shifting off the beginning of the receive queue
    (which happens after each hextile FBU) performs poorly.
    
    This change switches to using an indexed receive queue (instead of
    actually shifting off the array). When the receive queue has grown to
    a certain size, then it is compacted all at once.
    
    The code is not as clean, but this change results in more than 2X
    speedup under Chrome for the pessimal case and 10-20% in firefox.
    67b4e987
rfb.js 50.6 KB