间隔期间的性能计数器最大值?
Posted
技术标签:
【中文标题】间隔期间的性能计数器最大值?【英文标题】:Performance Counter maximum during interval? 【发布时间】:2009-12-18 19:24:02 【问题描述】:我有一个正在执行许多操作的应用程序。我有一些性能计数器可以测量在间隔之间执行操作所需的平均时间。我想要一个计数器,每个间隔将显示自上一个间隔以来处理其中一项操作所花费的最长时间。
对于平均值,我使用类型为 AverageTimer32 的 PerformanceCounter 实例和一个 AverageBase 实例。我将使用哪种性能计数器来跟踪间隔之间的最大操作时间?怎么增加?
【问题讨论】:
【参考方案1】:没有这种计数器类型。尝试实现自己的(读取当前值,比较,如果是新的最大值则更改)在并发条件下是有缺陷的,因为没有用于性能计数器的原子 interlockedcompareexchange API。
【讨论】:
这是否意味着不可能实现这样的事情? 您可以使用跟踪最大值并在适当锁定下递增的变量,并将其发布为普通绝对计数器。 这似乎不是一个真正的选择。您无法判断上一个间隔是何时进行的,因此您无法跟踪自上一个间隔以来的最大值。 您跟踪自应用程序启动时间以来的最大值。或者,您在应用程序中保留一个系列并自行管理它,并将计数器发布为“最近 60 秒内的最大值”。 每个读者的间隔之间的最大值是不可能的,这意味着性能计数器需要跟踪读者,这不是计数器的工作方式,它们只有一个一个原始值,其余由读取器计算以上是关于间隔期间的性能计数器最大值?的主要内容,如果未能解决你的问题,请参考以下文章