Skip to content

Commit 19ff4b4

Browse files
committed
Significantly optimize table with huge number of rows (i.e. 100K)
We do not need to render all rows, rendering only visible is enough
1 parent 683f8c1 commit 19ff4b4

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/view/table_view.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -928,7 +928,10 @@ where
928928
}
929929

930930
fn draw_content(&self, printer: &Printer<'_, '_>) {
931-
for i in 0..self.rows_to_items.len() {
931+
let start = printer.content_offset.y;
932+
let end = cmp::min(start + printer.output_size.y, self.rows_to_items.len());
933+
934+
for i in start..end {
932935
let printer = printer.offset((0, i));
933936
let color = if Some(i) == self.focus && self.enabled {
934937
if !self.column_select && self.enabled && printer.focused {

0 commit comments

Comments
 (0)