1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-03 00:03:12 +02:00

core: optimize the removal of lines in buffers (a lot faster to clear/close buffers with lot of lines)

The update of variables "buffer_max_length" and "prefix_max_length" in struct
t_gui_lines is now delayed and made during the main refresh (in main loop).

For a buffer with 50K lines, it is up to 3300 times faster to clear/close it.
For a buffer with 4096 lines (default limit), it is up to 120 times faster.
This commit is contained in:
Sebastien Helleu
2013-08-10 17:18:12 +02:00
parent a5cbfdf7fd
commit 6714d6fc82
12 changed files with 81 additions and 33 deletions
+2 -2
View File
@@ -412,9 +412,9 @@ config_compute_prefix_max_length_all_buffers ()
ptr_buffer = ptr_buffer->next_buffer)
{
if (ptr_buffer->own_lines)
gui_line_compute_prefix_max_length (ptr_buffer->own_lines);
ptr_buffer->own_lines->prefix_max_length_refresh = 1;
if (ptr_buffer->mixed_lines)
gui_line_compute_prefix_max_length (ptr_buffer->mixed_lines);
ptr_buffer->mixed_lines->prefix_max_length_refresh = 1;
}
}