Skip to content
  • Deucе's avatar
    9c871efc
    Massive SyncTERM performance overhaul. · 9c871efc
    Deucе authored
    This makes the performance about seven times better.  Previously,
    outputting the entire works of Shakespeare took about two minutes,
    nineteen seconds on my system.  With this change, it takes about
    19 seconds.
    
    This is still far behind non-BBS terminals like XTerm and Alacritty
    which tend to do that job in under one second.
    
    The main improvements:
    - For the bitmaps in memory, make them a ring buffer, and for
      full-width scrolling of more than half the screen, just move the
      top instead of a memmove()
    - Eliminate unnecessary comparisons and calculations in the glyph
      rendering loop
    - Combine drawing glyphs beside each other for better cache usage
    
    This still needs some cleanup, and much testing.
    9c871efc
    Massive SyncTERM performance overhaul.
    Deucе authored
    This makes the performance about seven times better.  Previously,
    outputting the entire works of Shakespeare took about two minutes,
    nineteen seconds on my system.  With this change, it takes about
    19 seconds.
    
    This is still far behind non-BBS terminals like XTerm and Alacritty
    which tend to do that job in under one second.
    
    The main improvements:
    - For the bitmaps in memory, make them a ring buffer, and for
      full-width scrolling of more than half the screen, just move the
      top instead of a memmove()
    - Eliminate unnecessary comparisons and calculations in the glyph
      rendering loop
    - Combine drawing glyphs beside each other for better cache usage
    
    This still needs some cleanup, and much testing.
Loading