首页 新闻 会员 周边 捐助

C# 上传提高速度

0
悬赏园豆:5 [已解决问题] 解决于 2022-12-06 15:51

各位大神好,因为项目遇到了困难,向大家求教!!!感谢

现在项目功能是:
试卷通过扫描仪扫描后,保存图片到本地---->
读取本地图片用opencv处理---->
处理完毕上传到阿里云

期间是一边扫描一边上传的。但是上传速度很慢。
比如扫描仪1分钟扫描保存了120张,oss上传才80张,还需要慢慢等待剩余40张上传。
而且项目机制是必须等这一批次处理完毕,才能接着扫描上传下一批图片。
(等待时间太长需要优化)

问题一:服务器带宽10M,图片大概200K左右,会是带宽不够的原因吗。
问题二:还有其他思路可以优化一下吗

感谢各位大神!!!

团子大家族族长的主页 团子大家族族长 | 初学一级 | 园豆:5
提问于:2022-12-05 09:03

云服务器带宽限制的是下行带宽,上行带宽(比如上传文件)没有限制

dudu 1年前

@dudu: 感谢

团子大家族族长 1年前
< >
分享
最佳答案
0

可以搞一个消息队列, 然后多个消费者上传,
最简单 就是把队列放在列表里面

收获园豆:5
Tom.汤 | 老鸟四级 |园豆:3058 | 2022-12-05 14:13
其他回答(3)
0

你应该并行上传,提高上传并发

空明流光 | 园豆:111 (初学一级) | 2022-12-05 14:02
0

我个人觉得这个问题,不是从某一个方面就能提升的,需要多维度的调整;

1:客户端带宽
2:服务端带宽
3:客户端代码开启并行上传
4:压缩
5:后台任务,存放到某个固定文件夹内,应用程序每次重启都自动开启上传;

SonyXbox | 园豆:370 (菜鸟二级) | 2022-12-06 15:52
0

你如果扫描和上传是2个进程,那会浪费一次IO读,而你的硬盘在扫描期间一直处于IO写状态,如果多一次IO读比较浪费时间,优化思路是放在一个进程离,IO流在内存里,不要写进硬盘。或者异步的写硬盘快照,但是实际操作的是内存。然后10MB的带宽是上传速度吗?这个带宽也是有点小。

!!!!!!!!!!!!!!! | 园豆:258 (菜鸟二级) | 2023-02-06 17:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册