I have a gaming laptop and a phone, both of which have USB 3.2 Gen 2 and Gen 1 ports. I also use a USB 4 Type-C cable. Now, recently, I have downloaded music files of over 300GB. If I transfer them one by one, it takes a lot of time. Today, I compressed the folder to a single zip file, and the transfer finished in less than 20m. Why is that so?


Isn’t this just going to be happen when the zip is decompressed, thus not saving time? I would actually expect it to be worse, since now you’re reading and writing from the same drive instead of reading from one, and writing it to another.
No, there’s a massive difference between doing something local and doing something over a hotpluggable connection.
USB by default, especially in Windows, does a lot of extra work to make sure nothing gets corrupted in transit, and that if the cable comes unplugged, nothing gets corrupted.
When you unzip on your local system, it’s just like sending an accountant into the back to unbox something. It’s one process, going as fast as they can, with local resources ready at hand.
When transferring a ton of files over USB, it’d be more like asking someone over the phone to send the contents of the box over, one by one. So now you have someone on the far end rummaging around for stuff meant for the box, packaging it up and sending items off one by one, telling a second person at the receiving end about each in turn, and only moving on once the receiver confirmed that one item came across OK.
The difference is insane. It’s probably even more overhead than the above example implies.
This does not match my experiences. Transferring files over USB would absolutely be faster than sending a zip and unzipping it on a flash drive. I can easily do 300MB/s over USB3.2 when transferring music files.
Unzipping a large file is going to be a bunch of reads and write and the large file is going to transfer at the exact same speed as the smaller music files, which are not “small”, they’re still tens of MB. So, the zip and music files take roughly the same time except now you have to wait to unzip with one large file. It does not save time.
Transferring tens of thousands of 1kb files will slow things down, and I’d zip this, but music files are big enough.
Not zipped to a flash drive. Zipped and sent over the same USB cable as sending the bunch of files.
The actual transfer bandwidth attained does rely a ton on what connection speed gets negotiated. The overhead of how at least Windows deals with USB is very noticeable at lower speeds. 3.1 or less and I can guarantee you the zip option might start looking like a valid choice.
Of course if you get 3.2gen2+ speeds negotiated, it’s going to be ‘fast enough’ either way assuming the devices can deliver on read/write…
Understood. I’m also talking about sending a full zip over to the flash drive, then unzipping it on that same flash drive.
Music files are large enough to not get affected by overhead like sending a ton of 1kb files. I see no significant difference in transfer time sending 100 10mb files or a single 1000mb file.
This is a totally different story with actually small files (ie kilobytes). Music downloads are not small, they’re multiple megabytes.
Well if you’re unzipping on the flash drive, that’s a whole mountain worse than copying device to device. Why would you want to torture the flash drive and your patience like that?
Right… that’s what I’m saying! My entire point.
Sending a zip of music files to a phone, then decompressing that zip on the phone, seems like a really stupid idea to me. You’ve now set up a situation where you’re reading and writing to one drive rather than reading from one and writing to another.
I’d imagine so