衡量被解雇的事件数量?

时间:2009-06-17 10:04:06

标签: .net events performance

我正在一个非常大的应用程序中进行一些调整。有没有办法衡量应用程序中触发的事件数量?例如,在System.Diagnostics中使用某些内容?

由于应用程序的大小,在事件内添加代码不是可接受的解决方案。

有分析工具,但对我来说快速而简单的方法可以在.Net

中找到

4 个答案:

答案 0 :(得分:1)

我不确定知道事件的数量会以任何方式帮助你。知道程序在哪里花费时间或分配内存会更有帮助。分析器将有助于此。


对于记录,分析器列表:

答案 1 :(得分:0)

这是一个非常有趣的问题。

没有任何额外的代码,实际上没有简单的方法来跟踪事件。这并不意味着添加代码必须很难或性能受损。

如果您的所有事件都使用自定义eventArgs,则可以向构造函数添加一个简单的日志记录语句,以便在每次创建自定义eventArgs时对其进行计数。

如果您没有使用自定义eventArgs,则可以使用customEventArgs类非常容易地扩展eventArgs,该类完全按此计数。只需扩展构造函数以更新一些静态变量,您可以经常将其写入日志。然后使用快速重构器,您可以将所有默认eventArgs重命名为这个稍微不同的customEventArgs。这将需要10分钟,并且不会破坏任何现有代码。

但是,如果您知道分析器可以执行此操作,为什么不使用它?如果应用程序非常庞大,并且您正在尝试进行非常小的优化,那么无论您构建此应用程序是谁,都可能不会考虑购买许可证以换取其软件改进所带来的额外成本。

答案 2 :(得分:0)

您是在谈论Windows“事件查看器”还是订阅课程中的事件?

如果是后者,谁订阅了你的活动?也许你可以写一些“胶水”代码,事件和订阅者之间的网站可以计算出来!

答案 3 :(得分:0)

我已经得出结论来尝试性能测量工具。由于没有简单的方法来执行测量代码。我会尽力了解它能为我做些什么。