pctcpu now works properly on FreeBSD

git-svn-id: svn://127.0.0.1/Perl/Proc-ProcessTable-Colorizer/trunk@971 0c1c3402-1be1-de11-8092-0022686faf23
This commit is contained in:
Zane C. B-H 2017-10-25 10:24:56 +00:00
parent 9a60a648b0
commit 9b0dc4d810
1 changed files with 20 additions and 11 deletions

View File

@ -171,9 +171,19 @@ sub colorize{
($^O =~ /bsd/) &&
( $field =~ /pctcpu/ )
){
my $bproc=BSD::Process::info( $proc->pid );
$values{pctcpu}=$bproc->{pctcpu};
my $pctcpu=$bproc->{pctcpu};
if ( ! defined( $pctcpu ) ){
$values{pctcpu}=0
}else{
my $fscale=`/sbin/sysctl -a kern.fscale`;
$fscale=~s/^.*\: //;
chomp($fscale);
$values{pctcpu}= 100 * ( $pctcpu / $fscale );
}
}elsif(
($^O =~ /bsd/) &&
( $field =~ /pctmem/ )
@ -182,7 +192,7 @@ sub colorize{
my $bproc=BSD::Process::info( $proc->pid );
my $rss=$bproc->{rssize};
if ( defined( $rss ) ){
$rss=$rss*1024;
$rss=$rss*1024*4;
my $physmem=`/sbin/sysctl -a hw.physmem`;
chomp($physmem);
@ -196,18 +206,19 @@ sub colorize{
($^O =~ /bsd/) &&
( $field =~ /size/ )
){
my $bproc=BSD::Process::info( $proc->pid );
$values{size}=$bproc->{size};
}elsif(
($^O =~ /bsd/) &&
( $field =~ /rss/ )
){
my $bproc=BSD::Process::info( $proc->pid );
$values{rss}=$bproc->{rssize};
$values{rss}=$proc->{rssize};
if (!defined $values{rss} ){
$values{rss}=0;
}else{
#not sure why this needs done :/
$values{rss}=$values{rss}*4;
}
}elsif(
$field eq 'proc'
@ -288,10 +299,8 @@ sub colorize{
$values{size} = 0;
}
$values{pctcpu}=$values{pctcpu}/20;
$values{pctmem}=sprintf('%.1f', $values{pctmem});
$values{pctcpu}=sprintf('%.1f', $values{pctcpu});
$values{pctmem}=sprintf('%.2f', $values{pctmem});
$values{pctcpu}=sprintf('%.2f', $values{pctcpu});
$values{size}=$values{size}/1024;