Now that I think of it, have your experimented with the way screen
updates are handled in ecl::Screen:flush_updates()? When there are
more than 200 updated regions on the screen, the function simply
updates its entire contents, which might be related to your
observation that drawing more is faster.
Good idea ... I did four more experiments, in otherwise the same setup as yesterday, and reproduced yesterday's results to be sure. Summary:
WITH statusbar, SOMETIMES update_all: 13.0 s (<- default)
WITH statusbar, ALWAYS update_all: 15.4 s
WITH statusbar, NEVER update_all: 13.3 s
NO statusbar, SOMETIMES update_all: 13.9 s
NO statusbar, ALWAYS update_all: 21.0 s (no typo!)
NO statusbar, NEVER update_all: 14.5 s
So ... first of all, it seems like your choice of 200 updated regions hits a sweet spot. Also: If Enigma just always flushes everything every time, the difference between having the statusbar and not having it gets even more pronounced. What this means ... I have no idea.