【发布时间】:2014-06-20 21:32:58
【问题描述】:
我希望为系统中的某些重要函数调用发布自定义性能计数器。我想在生产环境中持续监控这些性能计数器。
有没有办法让我用自定义属性标记某些函数,该属性可以测量执行给定函数所花费的时间?我想避免注入自定义代码,从而用监控代码污染与业务相关的功能。
属性中的代码如何跟踪函数执行所用的时间?
请不要建议使用 Profiler。我不打算调试或基准测试性能。但只是想在生产中 24/7 跟踪它。
【问题讨论】:
-
是用于 Web 应用程序 (ASP.NET) 还是桌面(WinForms、WPF)?
-
或 Windows 服务......这是为了监控某些框架级代码的性能,这些代码可以被不同的消费者使用
-
由于您将更改(您需要)您的代码以添加该属性,如果您将您的 code 放入 Action i> 或 Func 并因此将执行包装到 测量函数 中?这就是我为我正在工作的项目所做的。虽然它没有使用属性那么优雅,但它不需要任何(复杂的)依赖项。
-
希望能够无缝。但是,是的,我想你的方式会是另一种选择
-
@Igorek 许多 DI 容器允许您以真正无缝的方式完成它。请参阅我的答案中的更新。
标签: c# custom-attributes aop interception