After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 333776 - huge update latency
huge update latency
Status: RESOLVED FIXED
Product: vte
Classification: Core
Component: general
0.11.x
Other Linux
: High blocker
: ---
Assigned To: Behdad Esfahbod
VTE Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-03-07 17:36 UTC by Egmont Koblinger
Modified: 2006-03-09 10:59 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
update with at least 40 fps (576 bytes, patch)
2006-03-07 17:37 UTC, Egmont Koblinger
none Details | Review

Description Egmont Koblinger 2006-03-07 17:36:15 UTC
I know that recently some timeouts were changed in vte which resulted in a
much higher throughput (that is, cat'ing an extremely huge file is now much
faster). NEWS says:
0.11.18  - Limit redrawings to a maximum of 40fps.  Makes vte run about
           three times faster.
but then minor modifications were also made.

Currently, as of 0.11.20, in src/vte.c line 231 the interval between updates
is set to as many milliseconds as the number of rows of the terminal.
For the standard 80x25 size this yields in 40 fps and everything is fine.

However, there's a serious regression in interactive work (e.g. text editing)
if the terminal is much taller. If I say "joe sometextfile" and hold the right
arrow in a 80x25 terminal, the cursor smoothly, continuously goes to the
right. However, if I maximize my terminal (it will be 61 lines high with a
quite big font on my 1280x1024 desktop, I bet many people use even taller
terminals) then it will be updated with at most 1000/61 = 16.4 FPS. As a
result, when I hold the right arrow, my cursor seems to jump approximately
2 character cells at once. It looks somehow disturbing. Other possible
examples include pressing and holding the up or down arrow in mc, scrolling a
manual page in a maximized gnome-terminal etc., the regression is easily seen
by the eyes. It's hard to explain but I guess if you try it you'll get a
feeling.

Since #164153 was fixed (in 0.11.14 I guess) I had no problem with vte's
performance in any way. This change, however, made it definitely worse for
interactive work (though it may be really faster for huge outputs, but it
wasn't too slow anyway).

I believe that setting a _minimum_ FPS is much more important than throughput.
Though I'm not an expert of this topic, I do believe that continuous work in a
16 FPS terminal may easily cause headache or the eye may get tired much
earlier, similarly to CRT monitors running on 60Hz and stuff like that. It's
simply not good to the eye if it doesn't see things moving continuously.

I attach a patch which sets the attanded FPS to at least 40. I've been
intensively using vte with this patch in the last few weeks, and it seemed
to be perfect for me. Of course a "cat bigfile" is slower than without this
patch, but I'm pretty sure that it's much less important than how fast small
changes appear on the screen.

A better solution to both speed issues would be to adapt the FPS depending on
the intensity of changes. If a bigger file is being cat'ed then FPS could drop
to 10 or 20 fps, I really don't mind. However, if the intensity of output
doesn't exceed a few screenfuls per second, as in the case of most interactive
software, then it should go back to around 50 fps or maybe even more.
Comment 1 Egmont Koblinger 2006-03-07 17:37:06 UTC
Created attachment 60849 [details] [review]
update with at least 40 fps
Comment 2 Behdad Esfahbod 2006-03-07 17:42:27 UTC
I completely agree with your report.  I knew I should not make that change... Sorry about that.  Regardless, some of the problem is cause by bug 161342.

I'll try to get permission (we are in code freeze now) and revert that change before GNOME 2.14.  I'll simply go for 40fps unconditionally.
Comment 3 Behdad Esfahbod 2006-03-08 20:30:04 UTC
2006-03-08  Behdad Esfahbod  <behdad@gnome.org>

        * src/vte.c, src/vte-private.h: Fix vte_update_timeout repeat to
        25ms. (bug #333776, Egmont Koblinger)

Comment 4 Egmont Koblinger 2006-03-09 10:59:14 UTC
Thanks!