Filedownloader: Download acceleration with split downloading

Created on 12 Apr 2016  ·  10Comments  ·  Source: lingochamp/FileDownloader

Is there any plan to add multithread split downloading for single file download to increase download speed ?

enhancement

Most helpful comment

@sajadmartiny Thanks for you remind this issue, though in case of the mobile device, the I/O、 CPU、Network resources are very limited, and in the current version, FileDownloader has already used them very nervous in the most cases, so this feature isn't so urgency, but we will implement this feature when other more urgent feature have been done, because the mobile device environment will be better and better, and also, very welcome your pull request.

All 10 comments

👍 Yeap, I considered, and in the later version, after some other more important things all done.

P.S: Welcome PR :)

Ok... The point is you have actively maintained this download manager and it is by far the most reliable and customisable manager, but due to lack of this particular feature I'm being kept from using this library ..Hope to see it soon

Thank you, I get it.

感觉其实对提速没有太大意义,这边测试基本可以到2Mb/s,基本把带宽吃完了。

The issue is solved ?
Please solve this case

@sajadmartiny Thanks for you remind this issue, though in case of the mobile device, the I/O、 CPU、Network resources are very limited, and in the current version, FileDownloader has already used them very nervous in the most cases, so this feature isn't so urgency, but we will implement this feature when other more urgent feature have been done, because the mobile device environment will be better and better, and also, very welcome your pull request.

Need multi thread downloading. Thank You

I rewrite download logic to support this feature, relate to DownloadLaunchRunnable:

You can use this to launch downloading, on here the download will be launched separate following steps:
 <p/>
 step 1. create the first connection
          ( this first connection is used for:
                  1. checkup the saved etag is overdue
                  2. checkup whether the partial-accept is supported
                  3. checkup whether the current connection is chunked. )

 step 2. if the saved etag is overdue -> jump to step 1 to checkup whether the partial-accept is supported.
 step 3. if (NOT chunked) & partial-accept & output stream support-seek:
              create multiple {@link DownloadTask} to download.
         else:
              reuse the first connection and use {@link FetchDataTask} to fetch data from the connection.
 <p/>
 We use {@link DownloadStatusCallback} to handle all events sync to DB/filesystem and callback to user.

Since the new architecture support multi-connection I test on my home, it can use all resources on my network (the broadband on my home is 100Mb/s):

36MB file can be finished on about 3.082s:

image

image

Since the new architecture support multi-connection I test on my home, it can use all resources on my network (the broadband on my home is 100Mb/s):

36MB file can be finished on about 3.082s:

image

image

楼主有单个任务多线程的栗子么~

Was this page helpful?
0 / 5 - 0 ratings