Windows平台Flutter/Dart应用使用http.dart进行大文件下载速率过慢问题求助
Flutter/Dart http.dart下载大文件速率远低于curl(Windows 10)
我最近碰到了一个非常头疼的性能问题,想求助下有没有遇到过类似情况的开发者。我在Windows 10平台开发了一款Flutter/Dart应用,需要从AWS下载一个1GB的大文件,但用http.dart库发起请求时,下载速率只有5MB/sec;而同一台机器上用curl.exe执行完全相同的下载操作,却能稳定跑到65MB/sec,速率差了十几倍,这实在太离谱了!
已确认的环境与测试细节:
- 网络:两次下载用的是同一个1Gib带宽的网络连接,当时没有其他高负载程序在运行
- 存储:文件都下载到剩余空间充足的SSD中,系统资源监视器显示磁盘访问量极小,不存在磁盘瓶颈
- 系统资源:CPU使用率低、内存占用也不高,网络使用率仅占带宽的5%左右,明显没跑满
- 排查过的内容:
- 翻遍了
http.dart的官方文档,完全没找到导致这种速率差异的线索 - 网上搜索后只发现iOS平台有Flutter/Dart HTTP下载速率变慢的相关案例,Windows平台的几乎没有
- 分别测试了debug和release两种编译模式,速率没有明显变化
- 我怀疑可能是端口限制或者代码之外的网络配置问题,接下来打算换另一台电脑运行代码,排查是否和当前机器有关
- 翻遍了
核心下载代码
我用了分块下载的方式,核心代码如下:
final response1 = await http.get( Uri.parse(query), headers: { HttpHeaders.authorizationHeader: 'Bearer $bearerToken', 'range': 'bytes=$chunkStart-$chunkEnd' } );
希望各位大佬能帮忙分析下可能的原因,感谢大家的解答与帮助!
内容的提问来源于stack exchange,提问作者user1456958
相关产品推荐
相关产品推荐

