Skip to content

Commit 7b35c84

Browse files
slabtop: reduce CPU usage
1 parent f072684 commit 7b35c84

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/uu/slabtop/src/slabtop.rs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
7474
}
7575

7676
let mut terminal = ratatui::init();
77+
// Initial output
78+
terminal.draw(|frame| {
79+
Tui::new(&slabinfo.read()).render(frame.area(), frame.buffer_mut());
80+
})?;
81+
7782
loop {
78-
if let Ok(true) = event::poll(Duration::from_millis(10)) {
83+
if let Ok(true) = event::poll(Duration::from_millis(20)) {
7984
// If event available, break this loop
8085
if let Ok(e) = event::read() {
8186
match e {
@@ -91,23 +96,21 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
9196
uucore::error::set_exit_code(0);
9297
break;
9398
}
94-
event::Event::Key(KeyEvent {
95-
code: KeyCode::Char(' '),
96-
..
97-
}) => should_update.store(true, Ordering::Relaxed),
98-
_ => {}
99+
_ => should_update.store(true, Ordering::Relaxed),
99100
}
100101
}
101102
}
102103

103-
terminal.draw(|frame| {
104-
Tui::new(&slabinfo.read()).render(frame.area(), frame.buffer_mut());
105-
})?;
104+
if should_update.load(Ordering::Relaxed) {
105+
terminal.draw(|frame| {
106+
Tui::new(&slabinfo.read()).render(frame.area(), frame.buffer_mut());
107+
})?;
108+
}
106109

107110
if settings.once {
108111
break;
109112
} else {
110-
sleep(Duration::from_millis(10));
113+
sleep(Duration::from_millis(20));
111114
}
112115
}
113116

0 commit comments

Comments
 (0)