Delphi 10.2.3 Firemonkey安卓APP移动数据下HTTP POST性能骤降求助
Delphi 10.2.3 FireMonkey Android App: HTTP POST Performance Plummets on Mobile Data After Windows Spring Update
我用Delphi 10.2.3 FireMonkey开发的安卓应用已经稳定跑了快6个月,之前一直没出过什么大问题。但自从Windows做了春季更新,我重新编译了代码(不确定这步操作是不是诱因)之后,遇到了一个非常诡异的问题:HTTP POST请求在移动数据网络下的性能暴跌。
举个例子,一个只返回49字节响应的简单POST请求,在WiFi环境下只需要约0.1秒就能完成,但切换到移动数据后,居然要耗时10秒以上。
我已经做了不少排查工作,先列出来:
- 排除了服务器端问题:服务器的连接时长完全符合预期,其他客户端访问都正常,不存在响应慢的情况。
- 网络组件我一直用的是
idHTTP,之前一直稳定,而且这次代码完全没做任何修改。 - 测试了多个不同的移动数据网络(不管信号强弱,问题都一致,没有明显差异)。
- 检查了连接关闭、资源释放这类常规操作,确认没有遗漏或者错误。
后来我还做了更针对性的测试:
- 专门写了一个只包含POST连接逻辑的测试应用,结果同样存在问题:WiFi下0.1秒完成,移动数据下耗时甚至达到16秒。
- 更奇怪的是,GET请求完全正常:把同一个请求改成GET方式后,在移动数据下耗时也只有约0.1秒,所以我几乎可以确定问题出在POST请求的处理环节上。
为了排除环境问题,我甚至重装了Windows系统和Delphi 10.2.3,然后做了一个极简的测试应用——只有Get和Post两个按钮,调用一个返回简单参数的Web服务,但问题依旧:POST请求耗时约10秒,GET请求还是0.1秒左右。
实在找不到头绪了,恳请各位大佬给点解决思路!
内容的提问来源于stack exchange,提问作者Steve Graham
相关产品推荐
相关产品推荐

