调用百度OCR接口 识别图片
200张图片 5个线程 并发调用
本地跑用时 20s (通过测速工具看了下 本地相当于300M-500M带宽)
5M带宽云服务器上跑用时 57s
10M带宽云服务器上跑用时 32s (相比5M 提升了1倍)
有这么一个疑惑 5个并发 图片平均大小166K 5*166K=830K 连1M都没有 5M也绰绰有余了 怎么相比本地有3倍的差距呢
瓶颈是在哪里呢? 相比花钱升级带宽 代码层面能优化吗 如 异步非阻塞 IO事件通知等
调用百度OCR接口 识别图片
200张图片 5个线程 并发调用
本地跑用时 20s (通过测速工具看了下 本地相当于300M-500M带宽)
5M带宽云服务器上跑用时 57s
10M带宽云服务器上跑用时 32s (相比5M 提升了1倍)
有这么一个疑惑 5个并发 图片平均大小166K 5*166K=830K 连1M都没有 5M也绰绰有余了 怎么相比本地有3倍的差距呢
瓶颈是在哪里呢? 相比花钱升级带宽 代码层面能优化吗 如 异步非阻塞 IO事件通知等
一些前提条件图片的总大小 200 * 166 kB = 33200kB ≈ 32.12MB. 5M带宽理论传输速度是5/8=0.625MB/s,10M带宽理论传输速度是10/8=1.25MB/s.
根据你提供的时间能判断出来图片就是在服务器上的,图片只有一次传输,从你的服务器到百度服务器,下面是计算的传输时间.
1.5M服务器:传输图片需要的时间是32.12/0.625=51.392s
2.10M服务器:上传需要的时间是32.12/1.25=25.696s
和你提供的时间很接近,瓶颈就在带宽上
不知道业务场景是啥, 建议改成由前端去调用百度API, 不要走服务器流量.
带宽的M和文件大小的M其实是不同单位😁