Win32.PerfLib man page on Cygwin

Man page or keyword search:  
man Server   22533 pages
apropos Keyword Search (all sections)
Output format
Cygwin logo
[printable version]

PerfLib(3)	      User Contributed Perl Documentation	    PerfLib(3)

NAME
       Win32::PerfLib - accessing the Windows NT Performance Counter

SYNOPSIS
	 use Win32::PerfLib;
	 my $server = "";
	 Win32::PerfLib::GetCounterNames($server, \%counter);
	 %r_counter = map { $counter{$_} => $_ } keys %counter;
	 # retrieve the id for process object
	 $process_obj = $r_counter{Process};
	 # retrieve the id for the process ID counter
	 $process_id = $r_counter{'ID Process'};

	 # create connection to $server
	 $perflib = new Win32::PerfLib($server);
	 $proc_ref = {};
	 # get the performance data for the process object
	 $perflib->GetObjectList($process_obj, $proc_ref);
	 $perflib->Close();
	 $instance_ref = $proc_ref->{Objects}->{$process_obj}->{Instances};
	 foreach $p (sort keys %{$instance_ref})
	 {
	     $counter_ref = $instance_ref->{$p}->{Counters};
	     foreach $i (keys %{$counter_ref})
	     {
		 if($counter_ref->{$i}->{CounterNameTitleIndex} == $process_id)
		 {
		     printf( "% 6d %s\n", $counter_ref->{$i}->{Counter},
			     $instance_ref->{$p}->{Name}
			   );
		 }
	     }
	 }

DESCRIPTION
       This module allows to retrieve the performance counter of any computer
       (running Windows NT) in the network.

FUNCTIONS
   NOTE
       All of the functions return false if they fail, unless otherwise noted.
       If the $server argument is undef the local machine is assumed.

       Win32::PerfLib::GetCounterNames($server,$hashref)
		 Retrieves the counter names and their indices from the
		 registry and stores them in the hash reference

       Win32::PerfLib::GetCounterHelp($server,$hashref)
		 Retrieves the counter help strings and their indices from the
		 registry and stores them in the hash reference

       $perflib = Win32::PerfLib->new ($server)
		 Creates a connection to the performance counters of the given
		 server

       $perflib->GetObjectList($objectid,$hashref)
		 retrieves the object and counter list of the given
		 performance object.

       $perflib->Close($hashref)
		 closes the connection to the performance counters

       Win32::PerfLib::GetCounterType(countertype)
		 converts the counter type to readable string as referenced in
		 calc.html so that it is easier to find the appropriate
		 formula to calculate the raw counter data.

Datastructures
       The performance data is returned in the following data structure:

       Level 1
		   $hashref = {
		       'NumObjectTypes'	  => VALUE
		       'Objects'	  => HASHREF
		       'PerfFreq'	  => VALUE
		       'PerfTime'	  => VALUE
		       'PerfTime100nSec'  => VALUE
		       'SystemName'	  => STRING
		       'SystemTime'	  => VALUE
		   }

       Level 2	 The hash reference $hashref->{Objects} has the returned
		 object ID(s) as keys and a hash reference to the object
		 counter data as value. Even there is only one object
		 requested in the call to GetObjectList there may be more than
		 one object in the result.

		   $hashref->{Objects} = {
		       <object1>  => HASHREF
		       <object2>  => HASHREF
		       ...
		   }

       Level 3	 Each returned object ID has object-specific performance
		 information. If an object has instances like the process
		 object there is also a reference to the instance information.

		   $hashref->{Objects}->{<object1>} = {
		       'DetailLevel'	       => VALUE
		       'Instances'	       => HASHREF
		       'Counters'	       => HASHREF
		       'NumCounters'	       => VALUE
		       'NumInstances'	       => VALUE
		       'ObjectHelpTitleIndex'  => VALUE
		       'ObjectNameTitleIndex'  => VALUE
		       'PerfFreq'	       => VALUE
		       'PerfTime'	       => VALUE
		   }

       Level 4	 If there are instance information for the object available
		 they are stored in the 'Instances' hashref. If the object has
		 no instances there is an 'Counters' key instead. The
		 instances or counters are numbered.

		   $hashref->{Objects}->{<object1>}->{Instances} = {
		       <1>     => HASHREF
		       <2>     => HASHREF
		       ...
		       <n>     => HASHREF
		   }
		   or
		   $hashref->{Objects}->{<object1>}->{Counters} = {
		       <1>     => HASHREF
		       <2>     => HASHREF
		       ...
		       <n>     => HASHREF
		   }

       Level 5
		   $hashref->{Objects}->{<object1>}->{Instances}->{<1>} = {
		       Counters		      => HASHREF
		       Name		      => STRING
		       ParentObjectInstance   => VALUE
		       ParentObjectTitleIndex => VALUE
		   }
		   or
		   $hashref->{Objects}->{<object1>}->{Counters}->{<1>} = {
		       Counter		     => VALUE
		       CounterHelpTitleIndex => VALUE
		       CounterNameTitleIndex => VALUE
		       CounterSize	     => VALUE
		       CounterType	     => VALUE
		       DefaultScale	     => VALUE
		       DetailLevel	     => VALUE
		       Display		     => STRING
		   }

       Level 6
		   $hashref->{Objects}->{<object1>}->{Instances}->{<1>}->{Counters} = {
		       <1>     => HASHREF
		       <2>     => HASHREF
		       ...
		       <n>     => HASHREF
		   }

       Level 7
		   $hashref->{Objects}->{<object1>}->{Instances}->{<1>}->{Counters}->{<1>} = {
		       Counter		     => VALUE
		       CounterHelpTitleIndex => VALUE
		       CounterNameTitleIndex => VALUE
		       CounterSize	     => VALUE
		       CounterType	     => VALUE
		       DefaultScale	     => VALUE
		       DetailLevel	     => VALUE
		       Display		     => STRING
		   }

		 Depending on the CounterType there are calculations to do
		 (see calc.html).

AUTHOR
       Jutta M. Klebe, jmk@bybyte.de

SEE ALSO
       perl(1).

perl v5.14.2			  2005-09-17			    PerfLib(3)
[top]

List of man pages available for Cygwin

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net