.net core perf profiler通过代码

时间:2018-06-11 13:19:56

标签: .net asp.net-mvc performance asp.net-core

我开发了一个中间件,它在调用next之前启动秒表,并在响应可用时停止,我会记录之后经过的时间。

这一切都很好。但它并没有提供我的细分,即:在调用中哪个方法调用占用了多少?例如:如果我在请求中有4个方法调用,我想知道每个方法的持续时间。

我认为,中间件不足以达到此目的,无需将装饰器放在所有位置,我该如何完成?

感谢。

1 个答案:

答案 0 :(得分:0)

可能你必须手动设置最有趣的代码片段。

虽然有IL注入解决方案(请参阅PostSharp网站上的MSIL Injection页面),但我认为在不改变现有代码库的情况下,可以在任意位置注入代码。然而,在许多情况下,使用装饰器来检测大部分现有代码(假设它被合理地分成模块)相对容易。例如,将自定义分析DelegatingHandler添加到HttpClient或使用分析SqlConnection工厂。

为了检查调用层次结构和延迟,您可以使用MiniProfiler,它是内置的装饰器和RenderPlainText()方法。或者,您可以使用Metrics.NET库来检查与吞吐量相关的指标,例如直方图和计数器。