如何使用性能计数器来跟踪应用程序吞吐量

时间:2009-10-13 09:43:10

标签: c# windows-services performancecounter

我正在尝试使用c#的性能计数器来跟踪应用程序的吞吐量(实际上是一个Windows服务)。但我有一个关于如何解决这个问题的问题...我的应用程序解析XML文档,我想监视每单位时间解析的文档数量。 我每次解析文档时都使用_counter.Increment(),但这总是给我解析的文档总数(平面图)。我想制作好的图,我可以设置要采样的间隔,并在该间隔内得到计数。

这是否可以使用性能计数器,还是应该采用不同的方法?

感谢。

3 个答案:

答案 0 :(得分:3)

如果要查看项目的比率(例如,每秒),则需要使用不同的计数器类型。例如:

PerformanceCounterType.RateOfCountsPerSecond32

如果为每个项目增加此值,它将在Performance中显示为每秒计数而不是总计数(这是您使用PerformanceCounterType.NumberOfItems32获得的)。

答案 1 :(得分:0)

完成解析文件后,您可以随时减少计数器。这样,您可以在任何一个时间点获得活动解析的数量,这将实际上为您提供非线性图,因为这些解析将采用不同的间隔。

答案 2 :(得分:0)

最简单的方法是存储文档完成时的时间戳(所以一个大数组)

根据这些数据,您可以轻松扣除完成总数,处理速度,每个时间步的速度变化等等。

使用excel(只是为了开始)可以完成这些统计数据,稍后可以使用一些花哨的图表库来添加到您的软件中