我正在一个非常大的应用程序中进行一些调整。有没有办法衡量应用程序中触发的事件数量?例如,在System.Diagnostics中使用某些内容?
由于应用程序的大小,在事件内添加代码不是可接受的解决方案。
有分析工具,但对我来说快速而简单的方法可以在.Net
中找到答案 0 :(得分:1)
我不确定知道事件的数量会以任何方式帮助你。知道程序在哪里花费时间或分配内存会更有帮助。分析器将有助于此。
对于记录,分析器列表:
答案 1 :(得分:0)
这是一个非常有趣的问题。
没有任何额外的代码,实际上没有简单的方法来跟踪事件。这并不意味着添加代码必须很难或性能受损。
如果您的所有事件都使用自定义eventArgs,则可以向构造函数添加一个简单的日志记录语句,以便在每次创建自定义eventArgs时对其进行计数。
如果您没有使用自定义eventArgs,则可以使用customEventArgs类非常容易地扩展eventArgs,该类完全按此计数。只需扩展构造函数以更新一些静态变量,您可以经常将其写入日志。然后使用快速重构器,您可以将所有默认eventArgs重命名为这个稍微不同的customEventArgs。这将需要10分钟,并且不会破坏任何现有代码。
但是,如果您知道分析器可以执行此操作,为什么不使用它?如果应用程序非常庞大,并且您正在尝试进行非常小的优化,那么无论您构建此应用程序是谁,都可能不会考虑购买许可证以换取其软件改进所带来的额外成本。
答案 2 :(得分:0)
您是在谈论Windows“事件查看器”还是订阅课程中的事件?
如果是后者,谁订阅了你的活动?也许你可以写一些“胶水”代码,事件和订阅者之间的网站可以计算出来!
答案 3 :(得分:0)
我已经得出结论来尝试性能测量工具。由于没有简单的方法来执行测量代码。我会尽力了解它能为我做些什么。