perflib.html

来自「perl教程」· HTML 代码 · 共 295 行 · 第 1/2 页

HTML
295
字号
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../displayToc.js"></script>
<script language="JavaScript" src="../../tocParas.js"></script>
<script language="JavaScript" src="../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../scineplex.css">
<title>Win32::PerfLib - accessing the Windows NT Performance Counter</title>
<link rel="stylesheet" href="../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>

<body>

<script>writelinks('__top__',2);</script>
<h1><a>Win32::PerfLib - accessing the Windows NT Performance Counter</a></h1>
<p><a name="__index__"></a></p>

<!-- INDEX BEGIN -->

<ul>

	<li><a href="#name">NAME</a></li>
	<li><a href="#synopsis">SYNOPSIS</a></li>
	<li><a href="#description">DESCRIPTION</a></li>
	<li><a href="#functions">FUNCTIONS</a></li>
	<ul>

		<li><a href="#note">NOTE</a></li>
	</ul>

	<li><a href="#datastructures">Datastructures</a></li>
	<li><a href="#author">AUTHOR</a></li>
	<li><a href="#see_also">SEE ALSO</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>Win32::PerfLib - accessing the Windows NT Performance Counter</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
  <span class="keyword">use</span> <span class="variable">Win32::PerfLib</span><span class="operator">;</span>
  <span class="keyword">my</span> <span class="variable">$server</span> <span class="operator">=</span> <span class="string">""</span><span class="operator">;</span>
  <span class="variable">Win32::PerfLib::GetCounterNames</span><span class="operator">(</span><span class="variable">$server</span><span class="operator">,</span> <span class="operator">\</span><span class="variable">%counter</span><span class="operator">);</span>
  <span class="variable">%r_counter</span> <span class="operator">=</span> <span class="keyword">map</span> <span class="operator">{</span> <span class="variable">$counter</span><span class="operator">{</span><span class="variable">$_</span><span class="operator">}</span> <span class="operator">=&gt;</span> <span class="variable">$_</span> <span class="operator">}</span> <span class="keyword">keys</span> <span class="variable">%counter</span><span class="operator">;</span>
  <span class="comment"># retrieve the id for process object</span>
  <span class="variable">$process_obj</span> <span class="operator">=</span> <span class="variable">$r_counter</span><span class="operator">{</span><span class="string">Process</span><span class="operator">}</span><span class="operator">;</span>
  <span class="comment"># retrieve the id for the process ID counter</span>
  <span class="variable">$process_id</span> <span class="operator">=</span> <span class="variable">$r_counter</span><span class="operator">{</span><span class="string">'ID Process'</span><span class="operator">}</span><span class="operator">;</span>
</pre>
<pre>
  <span class="comment"># create connection to $server</span>
  <span class="variable">$perflib</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">Win32::PerfLib</span><span class="operator">(</span><span class="variable">$server</span><span class="operator">);</span>
  <span class="variable">$proc_ref</span> <span class="operator">=</span> <span class="operator">{}</span><span class="operator">;</span>
  <span class="comment"># get the performance data for the process object</span>
  <span class="variable">$perflib</span><span class="operator">-&gt;</span><span class="variable">GetObjectList</span><span class="operator">(</span><span class="variable">$process_obj</span><span class="operator">,</span> <span class="variable">$proc_ref</span><span class="operator">);</span>
  <span class="variable">$perflib</span><span class="operator">-&gt;</span><span class="variable">Close</span><span class="operator">();</span>
  <span class="variable">$instance_ref</span> <span class="operator">=</span> <span class="variable">$proc_ref</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="string">Objects</span><span class="operator">}</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="variable">$process_obj</span><span class="operator">}</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="string">Instances</span><span class="operator">}</span><span class="operator">;</span>
  <span class="keyword">foreach</span> <span class="variable">$p</span> <span class="operator">(</span><span class="keyword">sort</span> <span class="keyword">keys</span> <span class="variable">%</span><span class="operator">{</span><span class="variable">$instance_ref</span><span class="operator">}</span><span class="operator">)</span>
  <span class="operator">{</span>
      <span class="variable">$counter_ref</span> <span class="operator">=</span> <span class="variable">$instance_ref</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="variable">$p</span><span class="operator">}</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="string">Counters</span><span class="operator">}</span><span class="operator">;</span>
      <span class="keyword">foreach</span> <span class="variable">$i</span> <span class="operator">(</span><span class="keyword">keys</span> <span class="variable">%</span><span class="operator">{</span><span class="variable">$counter_ref</span><span class="operator">}</span><span class="operator">)</span>
      <span class="operator">{</span>
          <span class="keyword">if</span><span class="operator">(</span><span class="variable">$counter_ref</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="variable">$i</span><span class="operator">}</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="string">CounterNameTitleIndex</span><span class="operator">}</span> <span class="operator">==</span> <span class="variable">$process_id</span><span class="operator">)</span>
          <span class="operator">{</span>
              <span class="keyword">printf</span><span class="operator">(</span> <span class="string">"% 6d %s\n"</span><span class="operator">,</span> <span class="variable">$counter_ref</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="variable">$i</span><span class="operator">}</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="string">Counter</span><span class="operator">}</span><span class="operator">,</span>
                      <span class="variable">$instance_ref</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="variable">$p</span><span class="operator">}</span><span class="operator">-&gt;</span><span class="operator">{</span><span class="string">Name</span><span class="operator">}</span>
                    <span class="operator">);</span>
          <span class="operator">}</span>
      <span class="operator">}</span>
  <span class="operator">}</span>
</pre>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>This module allows to retrieve the performance counter of any computer
(running Windows NT) in the network.</p>
<p>
</p>
<hr />
<h1><a name="functions">FUNCTIONS</a></h1>
<p>
</p>
<h2><a name="note">NOTE</a></h2>
<p>All of the functions return false if they fail, unless otherwise noted.
If the $server argument is undef the local machine is assumed.</p>
<dl>
<dt><strong><a name="item_getcounternames">Win32::PerfLib::GetCounterNames($server,$hashref)</a></strong>

<dd>
<p>Retrieves the counter names and their indices from the registry and stores them
in the hash reference</p>
</dd>
</li>
<dt><strong><a name="item_getcounterhelp">Win32::PerfLib::GetCounterHelp($server,$hashref)</a></strong>

<dd>
<p>Retrieves the counter help strings and their indices from the registry and
stores them in the hash reference</p>
</dd>
</li>
<dt><strong><a name="item_new">$perflib = Win32::PerfLib-&gt;new ($server)</a></strong>

<dd>
<p>Creates a connection to the performance counters of the given server</p>
</dd>
</li>
<dt><strong><a name="item_getobjectlist">$perflib-&gt;<code>GetObjectList($objectid,$hashref)</code></a></strong>

<dd>
<p>retrieves the object and counter list of the given performance object.</p>
</dd>
</li>
<dt><strong><a name="item_close">$perflib-&gt;<code>Close($hashref)</code></a></strong>

<dd>
<p>closes the connection to the performance counters</p>
</dd>
</li>
<dt><strong><a name="item_getcountertype">Win32::PerfLib::GetCounterType(countertype)</a></strong>

<dd>
<p>converts the counter type to readable string as referenced in <em>calc.html</em> so
that it is easier to find the appropriate formula to calculate the raw counter
data.</p>
</dd>
</li>
</dl>
<p>
</p>
<hr />
<h1><a name="datastructures">Datastructures</a></h1>
<p>The performance data is returned in the following data structure:</p>
<dl>
<dt><strong><a name="item_level_1">Level 1</a></strong>

<dd>
<pre>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?