如何实现每秒计数器的计数器

时间:2014-05-12 13:13:02

标签: c# timer counter performancecounter

我有一个程序正在接收一个对象并用它做一些事情。

我想在其上创建监控统计信息,例如每秒消息或超过5分钟。

我想这样做的方法是增加一个int计数器,然后设置一个系统计时器,每秒一次并重置计数器,然后更新结果。

这是一种可行的方法吗? 我认为它会起作用,但它可能会限制我从数据获得其他统计数据,例如5分钟的平均值,除非我在计时器之后将信息保存在其他地方?

这不是为了描述我的应用程序,而是为了了解程序当前的负载。

1 个答案:

答案 0 :(得分:2)

这样可行,但我认为只使用时间戳记录每个请求会更好。这似乎是您正在考虑的最低粒度级别。这个代码不仅编写起来更简单,而且当您想要每日平均5分钟时也不必更改。平均值等。

如果您想在代码中进行所有分析,可以考虑设置发布订阅模式:http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern

您的发布商会记录每个请求和时间戳,并将其发送给订阅者。每个订户将以不同的方式分析数据。例如,你可能有5分钟的平均值。正在计算5分钟平均值的用户。和另一个计算1秒平均值的用户