📄 winperf.pas
字号:
{$EXTERNALSYM PERF_TEXT_ASCII}
//
// Timer SubTypes
//
PERF_TIMER_TICK = $00000000; // use system perf. freq for base
{$EXTERNALSYM PERF_TIMER_TICK}
PERF_TIMER_100NS = $00100000; // use 100 NS timer time base units
{$EXTERNALSYM PERF_TIMER_100NS}
PERF_OBJECT_TIMER = $00200000; // use the object timer freq
{$EXTERNALSYM PERF_OBJECT_TIMER}
//
// Any types that have calculations performed can use one or more of
// the following calculation modification flags listed here
//
PERF_DELTA_COUNTER = $00400000; // compute difference First
{$EXTERNALSYM PERF_DELTA_COUNTER}
PERF_DELTA_BASE = $00800000; // compute base diff as well
{$EXTERNALSYM PERF_DELTA_BASE}
PERF_INVERSE_COUNTER = $01000000; // show as 1.00-value (assumes:
{$EXTERNALSYM PERF_INVERSE_COUNTER}
PERF_MULTI_COUNTER = $02000000; // sum of multiple instances
{$EXTERNALSYM PERF_MULTI_COUNTER}
//
// Select one of the following values to indicate the display suffix (if any)
//
PERF_DISPLAY_NO_SUFFIX = $00000000; // no suffix
{$EXTERNALSYM PERF_DISPLAY_NO_SUFFIX}
PERF_DISPLAY_PER_SEC = $10000000; // "/sec"
{$EXTERNALSYM PERF_DISPLAY_PER_SEC}
PERF_DISPLAY_PERCENT = $20000000; // "%"
{$EXTERNALSYM PERF_DISPLAY_PERCENT}
PERF_DISPLAY_SECONDS = $30000000; // "secs"
{$EXTERNALSYM PERF_DISPLAY_SECONDS}
PERF_DISPLAY_NOSHOW = $40000000; // value is not displayed
{$EXTERNALSYM PERF_DISPLAY_NOSHOW}
//
// Predefined counter types
//
// 32-bit Counter. Divide delta by delta time. Display suffix: "/sec"
PERF_COUNTER_COUNTER =
PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or
PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_DISPLAY_PER_SEC;
{$EXTERNALSYM PERF_COUNTER_COUNTER}
// 64-bit Timer. Divide delta by delta time. Display suffix: "%"
PERF_COUNTER_TIMER =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or
PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT;
{$EXTERNALSYM PERF_COUNTER_TIMER}
// Queue Length Space-Time Product. Divide delta by delta time. No Display Suffix.
PERF_COUNTER_QUEUELEN_TYPE =
PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_QUEUELEN or
PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX;
{$EXTERNALSYM PERF_COUNTER_QUEUELEN_TYPE}
// Queue Length Space-Time Product. Divide delta by delta time. No Display Suffix.
PERF_COUNTER_LARGE_QUEUELEN_TYPE =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_QUEUELEN or
PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX;
{$EXTERNALSYM PERF_COUNTER_LARGE_QUEUELEN_TYPE}
// Queue Length Space-Time Product using 100 Ns timebase.
// Divide delta by delta time. No Display Suffix.
PERF_COUNTER_100NS_QUEUELEN_TYPE =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_QUEUELEN or
PERF_TIMER_100NS or PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX;
{$EXTERNALSYM PERF_COUNTER_100NS_QUEUELEN_TYPE}
// Queue Length Space-Time Product using Object specific timebase.
// Divide delta by delta time. No Display Suffix.
PERF_COUNTER_OBJ_TIME_QUEUELEN_TYPE =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_QUEUELEN or
PERF_OBJECT_TIMER or PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX;
{$EXTERNALSYM PERF_COUNTER_OBJ_TIME_QUEUELEN_TYPE}
// 64-bit Counter. Divide delta by delta time. Display Suffix: "/sec"
PERF_COUNTER_BULK_COUNT =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or
PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_DISPLAY_PER_SEC;
{$EXTERNALSYM PERF_COUNTER_BULK_COUNT}
// Indicates the counter is not a counter but rather Unicode text Display as text.
PERF_COUNTER_TEXT =
PERF_SIZE_VARIABLE_LEN or PERF_TYPE_TEXT or PERF_TEXT_UNICODE or
PERF_DISPLAY_NO_SUFFIX;
{$EXTERNALSYM PERF_COUNTER_TEXT}
// Indicates the data is a counter which should not be
// time averaged on display (such as an error counter on a serial line)
// Display as is. No Display Suffix.
PERF_COUNTER_RAWCOUNT =
PERF_SIZE_DWORD or PERF_TYPE_NUMBER or PERF_NUMBER_DECIMAL or
PERF_DISPLAY_NO_SUFFIX;
{$EXTERNALSYM PERF_COUNTER_RAWCOUNT}
// Same as PERF_COUNTER_RAWCOUNT except its size is a large integer
PERF_COUNTER_LARGE_RAWCOUNT =
PERF_SIZE_LARGE or PERF_TYPE_NUMBER or PERF_NUMBER_DECIMAL or
PERF_DISPLAY_NO_SUFFIX;
{$EXTERNALSYM PERF_COUNTER_LARGE_RAWCOUNT}
// Special case for RAWCOUNT that want to be displayed in hex
// Indicates the data is a counter which should not be
// time averaged on display (such as an error counter on a serial line)
// Display as is. No Display Suffix.
PERF_COUNTER_RAWCOUNT_HEX =
PERF_SIZE_DWORD or PERF_TYPE_NUMBER or PERF_NUMBER_HEX or
PERF_DISPLAY_NO_SUFFIX;
{$EXTERNALSYM PERF_COUNTER_RAWCOUNT_HEX}
// Same as PERF_COUNTER_RAWCOUNT_HEX except its size is a large integer
PERF_COUNTER_LARGE_RAWCOUNT_HEX =
PERF_SIZE_LARGE or PERF_TYPE_NUMBER or PERF_NUMBER_HEX or
PERF_DISPLAY_NO_SUFFIX;
{$EXTERNALSYM PERF_COUNTER_LARGE_RAWCOUNT_HEX}
// A count which is either 1 or 0 on each sampling interrupt (% busy)
// Divide delta by delta base. Display Suffix: "%"
PERF_SAMPLE_FRACTION =
PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_FRACTION or
PERF_DELTA_COUNTER or PERF_DELTA_BASE or PERF_DISPLAY_PERCENT;
{$EXTERNALSYM PERF_SAMPLE_FRACTION}
// A count which is sampled on each sampling interrupt (queue length)
// Divide delta by delta time. No Display Suffix.
PERF_SAMPLE_COUNTER =
PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or
PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX;
{$EXTERNALSYM PERF_SAMPLE_COUNTER}
// A label: no data is associated with this counter (it has 0 length)
// Do not display.
PERF_COUNTER_NODATA =
PERF_SIZE_ZERO or PERF_DISPLAY_NOSHOW;
{$EXTERNALSYM PERF_COUNTER_NODATA}
// 64-bit Timer inverse (e.g., idle is measured, but display busy %)
// Display 100 - delta divided by delta time. Display suffix: "%"
PERF_COUNTER_TIMER_INV =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or
PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_INVERSE_COUNTER or
PERF_DISPLAY_PERCENT;
{$EXTERNALSYM PERF_COUNTER_TIMER_INV}
// The divisor for a sample, used with the previous counter to form a
// sampled %. You must check for >0 before dividing by this! This
// counter will directly follow the numerator counter. It should not
// be displayed to the user.
PERF_SAMPLE_BASE =
PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_BASE or
PERF_DISPLAY_NOSHOW or
$00000001; // for compatibility with pre-beta versions
{$EXTERNALSYM PERF_SAMPLE_BASE}
// A timer which, when divided by an average base, produces a time
// in seconds which is the average time of some operation. This
// timer times total operations, and the base is the number of opera-
// tions. Display Suffix: "sec"
PERF_AVERAGE_TIMER =
PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_FRACTION or
PERF_DISPLAY_SECONDS;
{$EXTERNALSYM PERF_AVERAGE_TIMER}
// Used as the denominator in the computation of time or count
// averages. Must directly follow the numerator counter. Not dis-
// played to the user.
PERF_AVERAGE_BASE =
PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_BASE or
PERF_DISPLAY_NOSHOW or
$00000002; // for compatibility with pre-beta versions
{$EXTERNALSYM PERF_AVERAGE_BASE}
// A bulk count which, when divided (typically) by the number of
// operations, gives (typically) the number of bytes per operation.
// No Display Suffix.
PERF_AVERAGE_BULK =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_FRACTION or
PERF_DISPLAY_NOSHOW;
{$EXTERNALSYM PERF_AVERAGE_BULK}
// 64-bit Timer in object specific units. Display delta divided by
// delta time as returned in the object type header structure. Display suffix: "%"
PERF_OBJ_TIME_TIMER =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or
PERF_OBJECT_TIMER or PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT;
{$EXTERNALSYM PERF_OBJ_TIME_TIMER}
// 64-bit Timer in 100 nsec units. Display delta divided by
// delta time. Display suffix: "%"
PERF_100NSEC_TIMER =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or
PERF_TIMER_100NS or PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT;
{$EXTERNALSYM PERF_100NSEC_TIMER}
// 64-bit Timer inverse (e.g., idle is measured, but display busy %)
// Display 100 - delta divided by delta time. Display suffix: "%"
PERF_100NSEC_TIMER_INV =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or
PERF_TIMER_100NS or PERF_DELTA_COUNTER or PERF_INVERSE_COUNTER or
PERF_DISPLAY_PERCENT;
{$EXTERNALSYM PERF_100NSEC_TIMER_INV}
// 64-bit Timer. Divide delta by delta time. Display suffix: "%"
// Timer for multiple instances, so result can exceed 100%.
PERF_COUNTER_MULTI_TIMER =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or
PERF_DELTA_COUNTER or PERF_TIMER_TICK or PERF_MULTI_COUNTER or
PERF_DISPLAY_PERCENT;
{$EXTERNALSYM PERF_COUNTER_MULTI_TIMER}
// 64-bit Timer inverse (e.g., idle is measured, but display busy %)
// Display 100 * _MULTI_BASE - delta divided by delta time.
// Display suffix: "%" Timer for multiple instances, so result
// can exceed 100%. Followed by a counter of type _MULTI_BASE.
PERF_COUNTER_MULTI_TIMER_INV =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or
PERF_DELTA_COUNTER or PERF_MULTI_COUNTER or PERF_TIMER_TICK or
PERF_INVERSE_COUNTER or PERF_DISPLAY_PERCENT;
{$EXTERNALSYM PERF_COUNTER_MULTI_TIMER_INV}
// Number of instances to which the preceding _MULTI_..._INV counter
// applies. Used as a factor to get the percentage.
PERF_COUNTER_MULTI_BASE =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_BASE or
PERF_MULTI_COUNTER or PERF_DISPLAY_NOSHOW;
{$EXTERNALSYM PERF_COUNTER_MULTI_BASE}
// 64-bit Timer in 100 nsec units. Display delta divided by delta time.
// Display suffix: "%" Timer for multiple instances, so result can exceed 100%.
PERF_100NSEC_MULTI_TIMER =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_DELTA_COUNTER or
PERF_COUNTER_RATE or PERF_TIMER_100NS or PERF_MULTI_COUNTER or
PERF_DISPLAY_PERCENT;
{$EXTERNALSYM PERF_100NSEC_MULTI_TIMER}
// 64-bit Timer inverse (e.g., idle is measured, but display busy %)
// Display 100 * _MULTI_BASE - delta divided by delta time.
// Display suffix: "%" Timer for multiple instances, so result
// can exceed 100%. Followed by a counter of type _MULTI_BASE.
PERF_100NSEC_MULTI_TIMER_INV =
PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_DELTA_COUNTER or
PERF_COUNTER_RATE or PERF_TIMER_100NS or PERF_MULTI_COUNTER or
PERF_INVERSE_COUNTER or PERF_DISPLAY_PERCENT;
{$EXTERNALSYM PERF_100NSEC_MULTI_TIMER_INV}
// Indicates the data is a fraction of the following counter which
// should not be time averaged on display (such as free space over
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -