fix some stuff regards to rss as Proc::ProcessTable returns problematic values for some items... requiring the use of BSD::Process

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

View File

@ -178,13 +178,20 @@ sub colorize{
($^O =~ /bsd/) &&
( $field =~ /pctmem/ )
){
my $rss=$proc->rss;
my $physmem=`/sbin/sysctl -a hw.physmem`;
chomp($physmem);
$physmem=~s/^.* //;
$values{pctmem}=($rss / $physmem)*100;
use BSD::Process;
my $bproc=BSD::Process::info( $proc->pid );
my $rss=$bproc->{rssize};
if ( defined( $rss ) ){
$rss=$rss*1024;
my $physmem=`/sbin/sysctl -a hw.physmem`;
chomp($physmem);
$physmem=~s/^.*\: //;
$values{pctmem}=($rss / $physmem)*100;
}else{
$values{pctmem}=0;
}
}elsif(
($^O =~ /bsd/) &&
( $field =~ /size/ )
@ -192,6 +199,16 @@ sub colorize{
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};
if (!defined $values{rss} ){
$values{rss}=0;
}
}elsif(
$field eq 'proc'
){
@ -276,7 +293,6 @@ sub colorize{
$values{pctmem}=sprintf('%.1f', $values{pctmem});
$values{pctcpu}=sprintf('%.1f', $values{pctcpu});
$values{rss}=$values{rss}/1024;
$values{size}=$values{size}/1024;
push( @procs, \%values );