make vte faster
@chpe
Submitted by Christian Persch Link to original bug (#722065)
Description
So with either the straight revert of the commit identified in bug 721944, or the Real Fix™ patch from there, I only get a 4x speedup back (from ~50s to ~12s) on vte-0-36. Also, on a more involved testcase (img.sh animated.gif > test; time cat test) the revert is 3x faster than the Real Fix™.
Since 0.28.2 was about the same speed with revert/real-fix as vte-0-36, I bisected between 49a0cdf1 and 0.28.2, with revert or real-fix applied, towards the lowest time, recording perf for all tested comits along the bisect. From that record I then picked the next regression window to bisect, and proceeded the same, etc. This was possible since it turned out that instead of a creeping slowing, perf was stable, and commits introducing perf regression were clearly identifiable.
Someone could also bisect 0.28 to 0-36, to see if there were also perf regression that have just been masked by unrelated perf improvements.
49a0cdf1: revert 5.3s , real-fix 5.3s 04f263af: revert 5.4s , real-fix 5.3s 5dd988de: revert 5.35s, real-fix 5.35s 2905d91d: revert 5.30s, real-fix 5.3s 37472ef4: revert 5.30s, real-fix 5.25s 8894e576: revert 5.85s, real-fix 5.85s (crashes on repeating 'cat test')
https://git.gnome.org/browse/vte/commit/?h=vte-0-36&id=8894e5764a8e27e87be8a965851113bb02052e7a is the first bad commit commit 8894e576 Author: Behdad Esfahbod behdad@gnome.org Date: Sat Nov 29 06:00:17 2008 +0000
[Bug 514632](https://bugzilla.gnome.org/show_bug.cgi?id=514632) – Problem with cursor in emacs in gnome-terminal
2008-11-29 Behdad Esfahbod <behdad@gnome.org>
[Bug 514632](https://bugzilla.gnome.org/show_bug.cgi?id=514632) – Problem with cursor in emacs in gnome-terminal
* src/vte-private.h:
* src/vte.c (_vte_terminal_cleanup_tab_fragments_at_cursor),
(_vte_terminal_insert_char):
* src/vteseq.c (vte_sequence_handler_ch),
(vte_sequence_handler_cm), (vte_sequence_handler_le),
(vte_sequence_handler_cursor_character_absolute):
Break "smart tabs" into multiple empty cells when cursor moves
into them or inserting character there.
svn path=/trunk/; revision=2222
8894e576: revert 5.85s, real-fix 5.85s (crashes on repeating 'cat test') c1acc920: revert 5.9s , real-fix 5.9s (crashes on repeating 'cat test') a00ed363: revert 5.9s , real-fix 5.9s (crashes on repeating 'cat test') 4a60f3ed: revert 5.7s , real-fix 5.7s (crashes on repeating 'cat test') 4afa82b2: revert 5.7s , real-fix 5.7s (crashes on repeating 'cat test') [seems perf improved here, someone should bisect to make sure there's no worsening perf hidden] 58bc3a94: revert 5.3s , real-fix 5.3s 3eaca3e3: revert 5.2s , real-fix 5.2s 83018a7d: revert 5.3s , real-fix 5.25s c34204b3: revert 5.2s , real-fix 5.2s 68ac36d9: revert 5.2s , real-fix 5.15s b2280c01: revert 5.2s , real-fix 5.2s ba1f44d6: revert 5.6s , real-fix 5.4s
https://git.gnome.org/browse/vte/commit/?h=vte-0-36&id=ba1f44d6119cc39602d8a660f4e5a9f56a6f19da is the first bad commit commit ba1f44d6 Author: Behdad Esfahbod behdad@behdad.org Date: Thu Aug 20 23:03:50 2009 -0400
Specialize VteRing to know about VteRowData
ba1f44d6: revert 5.6s , real-fix 5.4s 7a2a78d3: revert 5.5s , real-fix 5.45s bf5977d2: revert 5.5s , real-fix 5.3s 4e533b10: revert 5.95s, real-fix 6.2s
https://git.gnome.org/browse/vte/commit/?h=vte-0-36&id=4e533b106a1c39b8565a9891fba83e384cc40669 is the first bad commit commit 4e533b10 Author: Behdad Esfahbod behdad@behdad.org Date: Fri Aug 21 12:17:38 2009 -0400
Revert 80dc9064
Removing the optimization, so I can clean up the ring API and redesign
the implementation. Sorry Chris!
4e533b10: revert 5.95s, real-fix 6.2s 031a653d: revert 6.0s , real-fix 6.0s 4e20a3b7: revert 5.95s, real-fix 5.95s 44073767: revert 6.75s, real-fix 6.7s
https://git.gnome.org/browse/vte/commit/?h=vte-0-36&id=440737678453a83e812ee60545369ec0e54a4759 is the first bad commit commit 44073767 Author: Behdad Esfahbod behdad@behdad.org Date: Fri Aug 21 21:01:17 2009 -0400
Move _vte_new_row_data() business into the ring
44073767: revert 6.75s, real-fix 6.7s 9a3de3c2: rever 6.6s , real-fix 6.6s 689990df: revert 6.5s , real-fix 6.5s 674f91ff: revert 8.6s
https://git.gnome.org/browse/vte/commit/?h=vte-0-36&id=674f91ff949f532b7037c9aba658ad5ea3330a91 is the first bad commit commit 674f91ff Author: Behdad Esfahbod behdad@behdad.org Date: Tue Aug 25 18:11:05 2009 -0400
Remove G_DISABLE_ASSERT
674f91ff: revert 8.6s edea8adf: revert 8.5s , real-fix 8.5s 43190598: rever 8.5s , real-fix 8.5s (crash on exit: vtepangocairo.c:188:unistr_info_finish: code should not be reached) 8ad1d698: revert 8.5s , real-fix 8.4s dd06b763: revert 8.5s ea6488d2: revert 8.8s a74e9fb9: revert 8.9s dd06b763: revert 8.9s 717f5bc3: revert 8.5s [commit 684e66ae is the one which improves perf here] 684e66ae: revert 7.5s 41f2912b: revert 7.5s , real-fix 7.5s 8cb3e376: revert 7.6s f73e04e9: revert 7.7s 96793d97: revert 7.7s
https://git.gnome.org/browse/vte/commit/?h=vte-0-36&id=6cf23eeb0237858b7b769074ed9c5bb564c3d is the first bad commit commit 71a6cf23 Author: Behdad Esfahbod behdad@behdad.org Date: Thu Aug 27 17:07:53 2009 -0400
[ring] Fix brokenness with macro implementation
71a6cf23: revert 8.1s cbb30710: revert 8.1s 00566ad0: revert 8.1s , real-fix 8.0s 9f486dfe: revert 8.1s [commit fb9a0d37 is the one which improves perf here] fb9a0d37: revert 7.8s
https://git.gnome.org/browse/vte/commit/?h=vte-0-36&id=064822346af55ce36e0a7e82b38bf235e9fb394f is the first bad commit commit 06482234 Author: Behdad Esfahbod behdad@behdad.org Date: Sat Sep 5 00:06:38 2009 -0400
[ring] Remove GArray for rowcell allocation
A very dumb allocator right now. To be optimized.
[ChPe: likely fixed already]
06482234: revert 10.8s 2ce6acc6: revert 10.9s c6b2621d: revert 11.0s 2ce6acc6: revert 11.0s 7b7bea55: revert 7.3s 475606d9: revert 7.1s 1cd88dc0: revert 6.6s 3300760d: revert 6.7s 7d4895e5: revert 6.8s d77e97e9: revert 6.7s 17840c4a: revert 6.7s fc9a6daf: revert 7.0s
https://git.gnome.org/browse/vte/commit/?h=vte-0-36&id=fc9a6daf6394642e17e8aa76cbe661f0f08e8a68 is the first bad commit commit fc9a6daf Author: Behdad Esfahbod behdad@behdad.org Date: Wed Sep 9 21:26:46 2009 -0400
[ring] Separate VteRowData and VteCompactRowData
fc9a6daf: revert 7.0s cea0b21a: revert 7.1s 9ad227f5: revert 7.1s a63c3d68: revert 6.9s
https://git.gnome.org/browse/vte/commit/?h=vte-0-36&id=a88338e07429a5ce1fc4cb081448333c699f7f23 is the first bad commit commit a88338e0 Author: Behdad Esfahbod behdad@behdad.org Date: Sat Sep 12 19:40:02 2009 -0400
[ring] Port to VteStream
Not optimized, simple file-based non-compact storage
a88338e0: revert 28.8s 2eefab89: revert 29.0s ea7ee1b1: revert 29.2s 39b7a1f7: revert 12.8s 7561724d: revert 12.7s b1379dc1: revert 12.6s 122d6382: revert 12.6s ae08c6d9: revert 12.6s 4423625e: revert 12.8s 2a325bd0: revert 12.7s 63ba68fe: revert 13.2s ab66ce5c: revert 12.7s 3a37564d: revert 13.1s
0.28.2 : revert 13.0s, real-fix 11.8s