mirror of
https://github.com/ClementTsang/bottom.git
synced 2025-04-08 17:05:59 +02:00
bug: Divide Windows process cpu usage by number of processors (#525)
Fixes a bug displaying the CPU usage of a process in Windows due to not dividing by the number of processors.
This commit is contained in:
parent
4569532fb1
commit
1598654bef
@ -15,6 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
- [#504](https://github.com/ClementTsang/bottom/pull/504): Fixes two bugs causing the battery widget colours and mouse events to be broken.
|
||||
|
||||
- [#525](https://github.com/ClementTsang/bottom/pull/525): Fixes Windows process CPU usage not being divided by the number of cores.
|
||||
|
||||
## [0.6.1] - 2021-05-11
|
||||
|
||||
## Bug Fixes
|
||||
|
@ -40,7 +40,7 @@ pub fn get_process_data(
|
||||
let mut process_vector: Vec<ProcessHarvest> = Vec::new();
|
||||
let process_hashmap = sys.get_processes();
|
||||
let cpu_usage = sys.get_global_processor_info().get_cpu_usage() as f64 / 100.0;
|
||||
let num_cpus = sys.get_processors().len() as f64;
|
||||
let num_processors = sys.get_processors().len() as f64;
|
||||
for process_val in process_hashmap.values() {
|
||||
let name = if process_val.name().is_empty() {
|
||||
let process_cmd = process_val.cmd();
|
||||
@ -72,7 +72,7 @@ pub fn get_process_data(
|
||||
};
|
||||
|
||||
let pcu = {
|
||||
let p = process_val.cpu_usage() as f64 / num_cpus;
|
||||
let p = process_val.cpu_usage() as f64 / num_processors;
|
||||
if p.is_nan() {
|
||||
process_val.cpu_usage() as f64
|
||||
} else {
|
||||
@ -117,10 +117,10 @@ pub fn get_process_data(
|
||||
let cpu_usages = get_macos_process_cpu_usage(&cpu_usage_unknown_pids)?;
|
||||
for process in &mut process_vector {
|
||||
if cpu_usages.contains_key(&process.pid) {
|
||||
process.cpu_usage_percent = if num_cpus == 0.0 {
|
||||
process.cpu_usage_percent = if num_processors == 0.0 {
|
||||
*cpu_usages.get(&process.pid).unwrap()
|
||||
} else {
|
||||
*cpu_usages.get(&process.pid).unwrap() / num_cpus
|
||||
*cpu_usages.get(&process.pid).unwrap() / num_processors
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ pub fn get_process_data(
|
||||
let mut process_vector: Vec<ProcessHarvest> = Vec::new();
|
||||
let process_hashmap = sys.get_processes();
|
||||
let cpu_usage = sys.get_global_processor_info().get_cpu_usage() as f64 / 100.0;
|
||||
let num_processors = sys.get_processors().len() as f64;
|
||||
for process_val in process_hashmap.values() {
|
||||
let name = if process_val.name().is_empty() {
|
||||
let process_cmd = process_val.cmd();
|
||||
@ -39,7 +40,14 @@ pub fn get_process_data(
|
||||
}
|
||||
};
|
||||
|
||||
let pcu = process_val.cpu_usage() as f64;
|
||||
let pcu = {
|
||||
let p = process_val.cpu_usage() as f64 / num_processors;
|
||||
if p.is_nan() {
|
||||
process_val.cpu_usage() as f64
|
||||
} else {
|
||||
p
|
||||
}
|
||||
};
|
||||
let process_cpu_usage = if use_current_cpu_total && cpu_usage > 0.0 {
|
||||
pcu / cpu_usage
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user