-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于支持chunked的疑问 #187
Comments
支持chunk下载,具体提高效率,参考下这里: https://github.com/lingochamp/FileDownloader/wiki/filedownloader.properties 欢迎PR :) |
效率方面除了 |
从代码上来看,目前文件输入流到写文件是在一个线程里面执行,也就是文件的读写操作会堵塞当前线程,这样就不能够很好的协调网络流和文件流之间的并发,从而降低了文件的下载速度,这个速度在支持chunk的文件体现较为明显,是否能够考虑增加文件读写的并发处理? |
谢谢你的细心,这是一个很好的思想,其实之前在处理有损体验强制IO的时候也有思考过这个,这里确实是在两块系统资源(网络资源、IO资源),虽然是一个优化的方向,不过由于各项的策略性的优化,因此目前这个并非瓶颈所在。 简单说来:
不过在未来的迭代中,这会作为一个方向,也许会结合多点下载,或者结合全局统一管理固定几个策略分配的IO线程等的一些方式,在策略方面进行优化妥协。对于你说谈到的对于chunk明显的原因与解决方案:特别是有些chunk资源,后端给回的资源分块非常细,导致通过buffer取资源就需要非常频繁,由于不会是写文件照成的block(由于RAF不会在每次写buffer的时候就产生IO(特别是这种小数据高频率的情况)),因此影响因素是下面几点: 一、回调造成资源稀缺这块的 解决方案:
二、有损体验IO
为了确保在下载进程/应用进程被杀或Crash以后能够保证下次正常断点续传,每次下载了65536byte了并且2s了,会强制一次写文件(IO),以及数据库写操作。 解决方案:配置 |
非常感谢你的回复。我这里简要的对整个框架分析了以下,以及一些自己的想法吧,地址:http://10045125.github.io/2016/06/21/%E5%BC%80%E6%BA%90%E5%BA%93FileDownloader%E7%9A%84%E7%AE%80%E8%A6%81%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90/ |
我有2个疑问希望作者回复下:
如果不支持,很希望作者加入这种下载方式。有空我也Pull code,Thanks。
The text was updated successfully, but these errors were encountered: