【问题标题】:What makes Fiddler accelerate my iOS app rest call?是什么让 Fiddler 加速了我的 iOS 应用程序休息调用?
【发布时间】:2014-02-14 17:00:50
【问题描述】:

我的 iOS 应用对我的 WCF Web 服务进行 Rest 调用。

响应速度很慢,超过3分钟。

但是,当我将 Fiddler 设置为代理来监控 iOS 流量时。通话在 1 秒内结束。

是什么让 Fiddler 神奇地加速了 iOS 的 Rest 调用?

附言Fiddler 安装在与 iOS App 使用同一网络的 Windows PC 上。

其余调用示例(来自 Fiddler)

请求

GET https://xxxx.xxxx.com/Deals HTTP/1.1
Host: xxx.xxxx.com
Proxy-Connection: keep-alive
Accept-Encoding: gzip
Content-Type: application/json
Cookie:     ASPXAUTH=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Connection: keep-alive
User-Agent: Natural xxxx x.x.x (iPad; iPhone OS 7.0.2; en_US)

回应

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 891437
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
LastFetchDateTimeUTC: 2014-02-14T16:52:43.5465273Z
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 14 Feb 2014 16:52:45 GMT

响应正文是一个大的 json (2MB)

附言

除了 Fiddler,我们还尝试安装 wireshark 并在模拟器上运行应用程序时使用它来捕获 mac 上的流量。 我们看到很多 DUP ACK,我猜这是导致 tcp 重新传输的原因

附言

我们也从 iOS ping 通,WCF 网络服务没有延迟。

救命!

更新:

我们发现了一个问题,看起来响应时间随着身体的长度而减少。有什么意思吗?

【问题讨论】:

  • 我投票决定关闭,因为 OP 的解决方案使回想起来偏离了主题(这不是编程问题)。

标签: wcf debugging rest fiddler


【解决方案1】:

WireShark 日志应该为您提供有关每种情况下发生的情况的大量信息。当 Fiddler “神奇地”使事情变得更快时,通常是由于:

  • 更好的连接重用(例如 Fiddler 可能比客户端更好地重用连接)
  • 更好的缓冲区大小(例如,不使用微小的缓冲区进行读/写)
  • 不间断的代理确定行为

我在this blog post 中写了一些关于这些的内容。

【讨论】:

  • 我们发现了一个问题,看起来响应时间随着正文的长度而减少。这意味着什么?
【解决方案2】:

我们通过证明服务器很糟糕来解决了这个问题。我们在另一个 VM 上部署了相同的服务并且它可以工作。一定是网卡坏了

【讨论】:

    猜你喜欢
    • 2015-11-16
    • 2014-07-20
    • 1970-01-01
    • 2013-08-06
    • 2017-06-23
    • 2016-12-31
    • 2022-01-20
    • 1970-01-01
    • 2022-11-20
    相关资源
    最近更新 更多