显示性能数据

大多数计数器需要两个示例值才能计算可显示的值。 每个计数器的公式确定计数器是否需要两个样本。 有关计数器及其公式的列表,请参阅 Windows Server 2003 部署工具包的计数器类型部分。

收集性能数据 演示如何检索示例数据。 获得示例后,通常调用 PdhGetFormattedCounterValue 来计算可显示的值。

如果需要缩放计数器值以显示值,请在调用 PdhGetFormattedCounterValue 之前调用 PdhSetCounterScaleFactor 函数。 计数器值可以按 10 的幂从 -7 到 7 进行缩放。

如果计数器路径包含实例名称的通配符,请调用 PdhGetFormattedCounterArray 以检索每个收集实例的带格式计数器值的数组。

还可以使用 PdhCalculateCounterFromRawValuePdhFormatFromRawValue 函数来计算可显示的值。 若要使用这些函数,必须在每次 调用 PdhCollectQueryData 后检索收集的示例,并自行存储该示例。 若要检索示例,请调用 PdhGetRawCounterValuePdhGetRawCounterArray 函数。 对于基于时间的计数器值,请在 PdhFormatFromRawValue 之前调用 PdhGetCounterTimeBase 以检索计数器的时基。

如果使用原始数据执行计算,请在使用示例之前始终检查 PDH_RAW_COUNTER 结构的 CStatus 成员。 如果 CStatus 的值未PDH_CSTATUS_NEW_DATA或PDH_CSTATUS_VALID_DATA,则示例无效。

显示计数器的统计信息

如果要计算计数器的最小值、最大值和平均值,请调用 PdhComputeCounterStatistics 函数。 收集样本时,将 PDH_RAW_COUNTER 结构存储在传递给 PdhComputeCounterStatistics 的数组中。 函数返回 PDH_STATISTICS 结构中的统计值。

还可以使用此函数压缩日志文件。 例如,从日志文件中读取 10 条记录,调用 PdhComputeCounterStatistics 以计算平均值,然后将平均值写入输出日志文件。