#!/opt/bin/perl -I/opt/ras/lib:/opt/ras/lib/auto -d
use Solaris::Procfs;
use Data::Dumper;

@MOD = ( 
'strict.pm',
'vars.pm',
'AutoLoader.pm',
'Carp.pm',
'Config.pm',
'Cwd.pm',
'Data/Dumper.pm',
'Date/Format.pm',
'DirHandle.pm',
'DynaLoader.pm',
'Exporter.pm',
'Fcntl.pm',
'File/Basename.pm',
'File/Spec.pm',
'File/Spec/Unix.pm',
'FileHandle.pm',
'FindBin.pm',
'Getopt/Std.pm',
'HTML/Entities.pm',
'HTML/HeadParser.pm',
'HTML/Parser.pm',
'HTTP/Date.pm',
'HTTP/Headers.pm',
'HTTP/Message.pm',
'HTTP/Request.pm',
'HTTP/Response.pm',
'HTTP/Status.pm',
'Socket.pm',
'IO/File.pm',
'IO/Handle.pm',
'IO/Seekable.pm',
'IO/Socket.pm',
'Net/Ping.pm',
'Net/Domain.pm',
'Socket.pm',
'Storable.pm',
'SelectSaver.pm',
'Symbol.pm',
'Text/ParseWords.pm',
'Time/Local.pm',
'Time/Timezone.pm',
'Time/Zone.pm',
'LWP.pm',
'LWP/Debug.pm',
'LWP/MemberMixin.pm',
'LWP/Protocol.pm',
'LWP/UserAgent.pm',
'System.pm',
'Debug.pm',
'ReportContent.pm',
'Report.pm',
'NWS/A35K.pm',
'NWS/A5K.pm',
'NWS/Host.pm',
'NWS/SCH_Events.pm',
'NWS/SCH_Storage.pm',
'NWS/Schema.pm',
'NWS/Switch.pm',
'NWS/T3.pm',
'Message.pm',
'PDM.pm',
'PDM/ConfigFile.pm',
'PDM/Map.pm',
'PDM/Modules.pm',
'PDM/Thresholds.pm',
'Timelapse.pm',
'URI.pm',
'URI/Escape.pm',
'URI/URL.pm',
'URI/WithBase.pm',
'Util/Http.pm',
'base.pm',
'dumpvar.pl',
'overload.pm',
're.pm',
'sdt.pl',
'strict.pm',
'vars.pm',
'Agent.pm',
'Agent/A35KAgent.pm',
'Agent/A5KAgent.pm',
'Agent/HostAgent.pm',
'Agent/STools4Agent.pm',
'Agent/SwitchAgent.pm',
'Agent/T3Agent.pm',
'Agent/_DiskInq.pm',
'CIM.pm',
'CIM/Base.pm',
'CIM/GenInstance.pm',
'CIM/Instance.pm',
'CIM/Key.pm',
'CIM/Mof.pm',
'CIM/Property.pm',
'CIM/Tree.pm',
'Util.pm',
'Events.pm',
'Health.pm',
'Health/A35KHealth.pm',
'Health/A5KHealth.pm',
'Health/GUIHealth.pm',
'Health/HostHealth.pm',
'Health/STools4Health.pm',
'Health/SlaveHealth.pm',
'Health/SwitchHealth.pm',
'Health/T3Health.pm',
'Ilist.pm',
);

$last = 0;
print sprintf("%30.30s %9s %9s\n", 
             "Module   ", 
             "Inc(K)",
             "Total(K)", 
               );

$psinfo = Solaris::Procfs::psinfo( $$ );
$last = $psinfo->{pr_size};

foreach $mod (@MOD) {
   eval "require '$mod'";
   $psinfo = Solaris::Procfs::psinfo( $$ );
   print sprintf("%30.30s %9d %9s\n", 
             $mod, 
             ($psinfo->{pr_size} - $last),
             $psinfo->{pr_size}
               );
   $last = $psinfo->{pr_size};
   
}
print "Done.\n";

#   open(O, "ps -el | grep $$ | grep perf|");
#   $l = <O>; close(O);
#   @a  = split(/\s+/, $l);
#   $size = $a[10];
#   print "ps=$size, psinfo=$psinfo->{pr_size} " . ($psinfo->{pr_size}/$size) . "\n";

