Asp.Net WebApi性能问题/响应缓慢

时间:2019-04-08 19:10:43

标签: c# asp.net-web-api

在我的WebApi(.Net 4.6.2)中,我遇到一个问题,该呼叫执行异常慢(〜15秒)。当我去分析它时,我发现调用内的代码执行得相对较快(db调用和处理时间不到200ms)并将响应发送回客户端。

我认为序列化(我正在使用JSON)需要一段时间。因此,我在要序列化的类的GetObjectData()方法中添加了一个断点。而且它也可以在几毫秒内完成工作。

在那之后,如果我让它运行,它仍然需要剩余时间(大约14秒)来完成。(这是纯粹的在客户端等待的时间,没有下载发生)

如何调试GetObjectData()之后发生的情况并确定瓶颈?

1 个答案:

答案 0 :(得分:1)

我建议安装提琴手,并按照here的说明检查那里的clientBeginRequest和clientEndRequest值。

如果您的Web API使用HTTP,则可以启用Fiddler上启用的HTTPS拦截。

您可以看到如下所示的计时器:

enter image description here

然后,您可以确定速度慢是在服务器端还是在客户端应用程序中。

您还可以尝试通过邮递员调用您的API,并检查响应在邮递员中出现需要多少时间。

如果问题出在服务器端,则可以添加日志记录筛选器或HttpModules来查看何时接收到请求,何时发送响应以及每种方法的执行花费了多少时间。您还应该检查服务器CPU使用率和内存/磁盘使用率,以查看它们是否导致API性能出现问题。

希望这应该有助于定位问题。