mirror of
https://github.com/ClementTsang/bottom.git
synced 2025-07-29 16:44:54 +02:00
Changed how we handle total mem = 0 cases; made it so that it just sets a really negative value and we just check if the most recent value is negative
This commit is contained in:
parent
9cc398ecf9
commit
a592472562
64
TODO.md
64
TODO.md
@ -4,66 +4,68 @@ Note this will probably migrate to GitHub's native Issues; this was mostly for p
|
|||||||
|
|
||||||
## Pre-release (bare minimum)
|
## Pre-release (bare minimum)
|
||||||
|
|
||||||
* ~~Get each function working as a POC~~
|
- ~~Get each function working as a POC~~
|
||||||
|
|
||||||
* ~~Separate each component for readability, finalize project structure~~
|
- ~~Separate each component for readability, finalize project structure~~
|
||||||
|
|
||||||
* ~~Refreshing - how are we doing that? Are we allowing individual refresh periods per component?~~
|
- ~~Refreshing - how are we doing that? Are we allowing individual refresh periods per component?~~
|
||||||
|
|
||||||
* ~~Write tui display, charting~~
|
- ~~Write tui display, charting~~
|
||||||
|
|
||||||
* ~~FIX PROCESSES AHHHHHH~~
|
- ~~FIX PROCESSES AHHHHHH~~
|
||||||
|
|
||||||
* ~~Scrolling in at least processes~~
|
- ~~Scrolling in at least processes~~
|
||||||
|
|
||||||
* Keybindings - I want to do at least arrow keys and dd.
|
- Keybindings - I want to do at least arrow keys and dd.
|
||||||
|
|
||||||
* ~~Legend gets in the way at too small of a height... maybe modify tui a bit more to fix this.~~
|
- ~~Legend gets in the way at too small of a height... maybe modify tui a bit more to fix this.~~
|
||||||
|
|
||||||
## After making public
|
## After making public
|
||||||
|
|
||||||
* Arrow keys for lists. This is a priority!
|
- Consider bumping up the refresh rate to 3000?
|
||||||
|
|
||||||
* Travis
|
- Arrow keys for lists. This is a priority!
|
||||||
|
|
||||||
* Refactoring! Please.
|
- Travis
|
||||||
|
|
||||||
* Scaling in and out (zoom), may need to show zoom levels
|
- Refactoring! Please.
|
||||||
|
|
||||||
* More keybinds
|
- Scaling in and out (zoom), may need to show zoom levels
|
||||||
|
|
||||||
* Tests
|
- More keybinds
|
||||||
|
|
||||||
* Mouse + key events conflict? Make it so that some events don't clog up the loop if they are not valid keys!
|
- Tests
|
||||||
|
|
||||||
* Header should be clear on current sorting direction!
|
- Mouse + key events conflict? Make it so that some events don't clog up the loop if they are not valid keys!
|
||||||
|
|
||||||
* It would be maybe a good idea to see if we can run the process calculation across ALL cpus...? Might be more accurate.
|
- Header should be clear on current sorting direction!
|
||||||
|
|
||||||
* ~~Add custom error because it's really messy~~ Done, but need to implement across rest of app!
|
- It would be maybe a good idea to see if we can run the process calculation across ALL cpus...? Might be more accurate.
|
||||||
|
|
||||||
* Remove any ``unwrap()``, ensure no crashing! Might have to use this: <https://doc.rust-lang.org/std/panic/fn.catch_unwind.html>
|
- ~~Add custom error because it's really messy~~ Done, but need to implement across rest of app!
|
||||||
|
|
||||||
* Scrolling event in lists
|
- Remove any `unwrap()`, ensure no crashing! Might have to use this: <https://doc.rust-lang.org/std/panic/fn.catch_unwind.html>
|
||||||
|
|
||||||
* Switching between panels
|
- Scrolling event in lists
|
||||||
|
|
||||||
* Truncate columns if needed for tables
|
- Switching between panels
|
||||||
|
|
||||||
* Test for Windows support, mac support, other. May be doable, depends on sysinfo and how much I know about other OSes probably.
|
- Truncate columns if needed for tables
|
||||||
|
|
||||||
* Seems like the braille symbols are borked on windows.
|
- Test for Windows support, mac support, other. May be doable, depends on sysinfo and how much I know about other OSes probably.
|
||||||
|
|
||||||
* Issue with typing after windows version runs!
|
- Seems like the braille symbols are borked on windows.
|
||||||
|
|
||||||
* Efficiency!!!
|
- Issue with typing after windows version runs!
|
||||||
|
|
||||||
* Filtering in processes (that is, allow searching)
|
- Efficiency!!!
|
||||||
|
|
||||||
* Help screen
|
- Filtering in processes (that is, allow searching)
|
||||||
|
|
||||||
* Modularity
|
- Help screen
|
||||||
|
|
||||||
* ~~Potentially process managing? Depends on the libraries...~~ Done on Linux!
|
- Modularity
|
||||||
|
|
||||||
* Probably good to add a "are you sure" to dd-ing...
|
- ~~Potentially process managing? Depends on the libraries...~~ Done on Linux!
|
||||||
|
|
||||||
|
- Probably good to add a "are you sure" to dd-ing...
|
||||||
|
@ -132,7 +132,7 @@ pub fn draw_data<B : backend::Backend>(terminal : &mut Terminal<B>, app_state :
|
|||||||
.style(Style::default().fg(Color::LightBlue))
|
.style(Style::default().fg(Color::LightBlue))
|
||||||
.data(&canvas_data.mem_data)];
|
.data(&canvas_data.mem_data)];
|
||||||
|
|
||||||
if !(&canvas_data.swap_data).is_empty() {
|
if !(&canvas_data.swap_data).is_empty() && (&canvas_data.swap_data).last().unwrap().1 >= 0.0 {
|
||||||
mem_canvas_vec.push(
|
mem_canvas_vec.push(
|
||||||
Dataset::default()
|
Dataset::default()
|
||||||
.name(&swap_name)
|
.name(&swap_name)
|
||||||
|
@ -188,15 +188,15 @@ pub fn convert_mem_data(mem_data : &[data_collection::mem::MemData]) -> Vec<(f64
|
|||||||
let mut result : Vec<(f64, f64)> = Vec::new();
|
let mut result : Vec<(f64, f64)> = Vec::new();
|
||||||
|
|
||||||
for data in mem_data {
|
for data in mem_data {
|
||||||
if data.mem_total_in_mb == 0 {
|
|
||||||
// Assume none (usually in the case of swap)! Also catches div by zero.
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
let current_time = std::time::Instant::now();
|
let current_time = std::time::Instant::now();
|
||||||
let new_entry = (
|
let new_entry = (
|
||||||
((STALE_MAX_MILLISECONDS as f64 - current_time.duration_since(data.instant).as_millis() as f64) * 10_f64).floor(),
|
((STALE_MAX_MILLISECONDS as f64 - current_time.duration_since(data.instant).as_millis() as f64) * 10_f64).floor(),
|
||||||
data.mem_used_in_mb as f64 / data.mem_total_in_mb as f64 * 100_f64,
|
if data.mem_total_in_mb == 0 {
|
||||||
|
-1000.0
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
data.mem_used_in_mb as f64 / data.mem_total_in_mb as f64 * 100_f64
|
||||||
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
// Now, inject our joining points...
|
// Now, inject our joining points...
|
||||||
|
Loading…
x
Reference in New Issue
Block a user