summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow (mars.fritz.box) <paul@buetow.org>2011-11-17 23:04:32 +0100
committerPaul Buetow (mars.fritz.box) <paul@buetow.org>2011-11-17 23:04:32 +0100
commitfe81b56c6ff3cce9261d0d9a6d854bc8412f15a0 (patch)
tree70298d6fad56bee8e70622325746a891c1603446
parente9cd93d2728be6380858e4d939fd9a68c2880e14 (diff)
Initial max values
-rwxr-xr-xloadbars.pl33
1 files changed, 21 insertions, 12 deletions
diff --git a/loadbars.pl b/loadbars.pl
index d8da582..10c9b91 100755
--- a/loadbars.pl
+++ b/loadbars.pl
@@ -169,16 +169,25 @@ sub normalize_loads (%) {
sub get_cpuaverage ($@) {
my ($factor, @loads) = @_;
- my %cpuaverage;
+ my (%cpumax, %cpuaverage);
for my $l (@loads) {
- $cpuaverage{$_} += $l->{$_} for keys %$l;
+ for (keys %$l) {
+ $cpuaverage{$_} += $l->{$_};
+
+ $cpumax{$_} = $l->{$_}
+ if not exists $cpumax{$_} or $cpumax{$_} < $l->{$_};
+ }
}
my $div = @loads / $factor;
- $cpuaverage{$_} /= $div for keys %cpuaverage;
- return %cpuaverage;
+ for (keys %cpuaverage) {
+ $cpuaverage{$_} /= $div;
+ $cpumax{$_} /= $factor;
+ }
+
+ return (\%cpumax, \%cpuaverage);
}
sub draw_background ($$) {
@@ -347,12 +356,12 @@ sub main_loop ($@) {
push @{$last_loads{$key}}, \%loads;
shift @{$last_loads{$key}} while @{$last_loads{$key}} >= $C{average};
- my %cpuaverage = get_cpuaverage $C{factor}, @{$last_loads{$key}};
+ my ($cpumaxmax, $cpuaverage) = get_cpuaverage $C{factor}, @{$last_loads{$key}};
my %heights = map {
- $_ => defined $cpuaverage{$_} ? $cpuaverage{$_} * ($C{height}/100) : 1
+ $_ => defined $cpuaverage->{$_} ? $cpuaverage->{$_} * ($C{height}/100) : 1
- } keys %cpuaverage;
+ } keys %$cpuaverage;
my $is_host_summary = exists $is_host_summary{$host};
@@ -396,12 +405,12 @@ sub main_loop ($@) {
$rect_iowait->x($x);
$rect_iowait->y($y);
- my $system_n_user = sum @cpuaverage{qw(user system)};
+ my $system_n_user = sum @{$cpuaverage}{qw(user system)};
$app->fill($rect_iowait, Loadbars::BLACK);
$app->fill($rect_nice, Loadbars::GREEN);
$app->fill($rect_system, Loadbars::BLUE);
- $app->fill($rect_system, $cpuaverage{system} > Loadbars::SYSTEM_PURPLE
+ $app->fill($rect_system, $cpuaverage->{system} > Loadbars::SYSTEM_PURPLE
? Loadbars::PURPLE
: Loadbars::BLUE);
$app->fill($rect_user, $system_n_user > Loadbars::USER_WHITE ? Loadbars::WHITE
@@ -427,9 +436,9 @@ sub main_loop ($@) {
$C{togglecpu} ? $current_barnum + 1: $current_corenum);
}
- $app->print($x, $y+=$space, sprintf '%d%s', $cpuaverage{nice}, 'ni');
- $app->print($x, $y+=$space, sprintf '%d%s', $cpuaverage{user}, 'us');
- $app->print($x, $y+=$space, sprintf '%d%s', $cpuaverage{system}, 'sy');
+ $app->print($x, $y+=$space, sprintf '%d%s', $cpuaverage->{nice}, 'ni');
+ $app->print($x, $y+=$space, sprintf '%d%s', $cpuaverage->{user}, 'us');
+ $app->print($x, $y+=$space, sprintf '%d%s', $cpuaverage->{system}, 'sy');
$app->print($x, $y+=$space, sprintf '%d%s', $system_n_user, 'su');
unless ($is_host_summary) {