Several months ago Dmitry announced new feature in Upload Suite which makes it to upload up to 50% faster than earlier. When he wrote that blog post, the development process was in progress and now I am happy to say that we have finished it.
Recently released Upload Suite 8.0.48 includes multi-threaded upload function and now everyone can see how efficiently it increases the upload speed.
What is multi-threaded upload and why it is faster?
The idea is very simple: now uploader can upload not just a single file but multiple files (e.g. 3 files) simultaneously. It can reduce the idle time (e.g. while uploader waits for the server's response for the first file, it continues uploading the second one) and use the client's bandwidth much more efficiently.
|
|
"Uploading" gold from a mine in a "single thread" |
"Uploading" gold from a mine in "multiple threads" |
How strongly it improves the upload speed on practice?
During our tests, we figured out that the upload speed increases up to 30-50%. The exact impact is highly depends on the bandwidth, server speed, file size and amount, but your users will definitely notice the difference. If you want to make sure yourself, feel free to check out the online demo:
- Go to the old good Basic Demo (single-threaded upload) and upload a batch of files large enough to see the difference.
- Then go to Fast File Upload Demo (multi-threaded upload) and upload the same batch of files.
- Compare the difference.
For example, I just tested it with 12 photos of total size 16 MB. Basic Demo uploaded this amount of photos around 2 minutes, while Fast File Upload Demo did it for only 48 seconds!
Is it difficult to enable multi-threaded upload mode in your code?
Well, enabling this mode is a matter of adding one line of code, BUT you should review your server-side part. In simple cases it will work without changes, but if the order of uploaded files is essential or each request not just saves files, but also shares some resources like database or description file, you may need to rewrite it.
We are preparing an article which explains how to write server-side code optimized for multi-threaded uploads. Meanwhile, don't hesitate to contact our support team or post questions on forum, if you need any assistance with it.