【问题标题】:Asp.Net WebApi performance issues / slow responseAsp.Net WebApi 性能问题/响应缓慢
【发布时间】:2021-05-22 01:11:27
【问题描述】:

在我的 WebApi (.Net 4.6.2) 中,我遇到了一个执行异常缓慢(~15 秒)的调用的问题。当我去分析它时,我发现调用中的代码执行速度相对较快(db call & processing in

我认为序列化(我正在使用 JSON)需要一段时间才能完成。所以我在我试图序列化的类的GetObjectData() 方法中设置了一个断点。它也能在几毫秒内完成工作。

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

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

【问题讨论】:

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


    【解决方案1】:

    我建议安装 fiddler 并在那里检查 clientBeginRequest 和 clientEndRequest 值,如here 所述。

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

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

    然后您可以决定慢是在服务器上还是在客户端应用程序中。

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

    如果问题出在服务器端,您可以添加日志过滤器或 HttpModules 以查看何时收到请求、何时发送响应、每个方法的执行花费了多少时间。您还应该检查服务器 CPU 利用率和内存/磁盘使用情况,看看这些是否会导致您的 API 性能出现任何问题。

    希望这有助于解决问题。

    【讨论】:

    • 我使用了 fiddler,它发现服务器在 15 秒内没有开始响应......所以它在服务器端。这就是为什么我需要了解如何调试服务器
    • 记录是唯一的答案。您可以启用调试级别日志记录(如果您添加了调试日志语句),然后查看代码的每个区域花费了多少时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 2023-03-22
    • 2022-08-20
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    相关资源
    最近更新 更多