diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2007-02-05 09:46:43 +0000 |
---|---|---|
committer | Chris Wilson <cpwilson@src.gnome.org> | 2007-02-05 09:46:43 +0000 |
commit | b307bc5c424787b557df9c69c1f92a7c45c558a8 (patch) | |
tree | 4b36e36a6d9aea0de893fbd98c715b726599cc79 /src/ring.h | |
parent | 285ebd25406bd8188e6da16f3290aa4682629b92 (diff) |
cf Bug 342338 – suffers from memory fragmentation
2007-02-05 Chris Wilson <chris@chris-wilson.co.uk>
cf Bug 342338 – suffers from memory fragmentation
Reuse the last VteRowData instead of immediately freeing it. Avoids
recreating and *regrowing* a new GArray on the heap.
In the simple scrolling benchmarks this can boost performance by as
much as 10%!
* src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve),
(_vte_ring_remove), (_vte_ring_append):
* src/ring.h:
* src/vte-private.h:
* src/vte.c: (_vte_reset_row_data), (_vte_terminal_ensure_cursor),
(_vte_terminal_insert_char), (vte_terminal_reset_rowdata):
* src/vteseq.c: (vte_insert_line_internal),
(vte_sequence_handler_scroll_up_or_down),
(vte_sequence_handler_cd), (vte_sequence_handler_sf),
(vte_sequence_handler_clear_screen),
(vte_sequence_handler_screen_alignment_test):
svn path=/trunk/; revision=1620
Diffstat (limited to 'src/ring.h')
-rw-r--r-- | src/ring.h | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -65,10 +65,10 @@ VteRing *_vte_ring_new(glong max_elements, gpointer data); VteRing *_vte_ring_new_with_delta(glong max_elements, glong delta, VteRingFreeFunc free, gpointer data); -void _vte_ring_insert(VteRing *ring, glong position, gpointer data); -void _vte_ring_insert_preserve(VteRing *ring, glong position, gpointer data); -void _vte_ring_remove(VteRing *ring, glong position, gboolean free_element); -void _vte_ring_append(VteRing *ring, gpointer data); +gpointer _vte_ring_insert(VteRing *ring, glong position, gpointer data); +gpointer _vte_ring_insert_preserve(VteRing *ring, glong position, gpointer data); +gpointer _vte_ring_remove(VteRing *ring, glong position, gboolean free_element); +gpointer _vte_ring_append(VteRing *ring, gpointer data); void _vte_ring_free(VteRing *ring, gboolean free_elements); G_END_DECLS |