In Windows, when you want to transfer files from a place to another you usually use the standard Copy/Paste/Move process, but it comes with a downside, it only use one thread on your system which is insane on an recent operating system, now mainly used on multi-threaded systems.
Depending on your system, the read/write performance of your disk can be the main bottleneck for file transfer speed, but if you are using a fast SSD/HDD, the number of used cores can be the bottleneck of your file transfer speed.
To prevent this, you can use a Microsoft command line utility called « Robocopy » for « Robust File Copy » with a special option for Multi-Threading.
This tool is available since Windows Server 2012 and on Windows 10 and above.
How to use the multi-threaded option in Robocopy
- Open the Command Prompt (CMD) as an administrator
- Use the following command to use the multithreaded copy option
robocopy C:\Source D:\Source /MT:NUMBER_OF_THREADS
Copy in multithreaded mode
Robocopy command parameters
Full original list can be found on the original Microsoft documentation
- /S — Copy subdirectories, but not empty ones.
- /E — Copy Subdirectories, including empty ones.
- /Z — Copy files in restartable mode.
- /ZB — Uses restartable mode. If access is denied, use backup mode.
- /TBD — Wait for share names To Be Defined (retry error 67).
- /NP — No Progress – don’t display percentage copied.
- /V — Produce verbose output, showing skipped files.
- /compress — Ask for network compression during transfer, if needed.
- /MT:n — Do multi-threaded copies with n threads (default is 8).
The default number of used threads with the MT option will be 8, Robocopy will try to copy eight files simultaneously by default. However, Robocopy supports from 1 to 128 threads.
Note that depending on your setup, you may not notice improvements on your copy process. But it’s usually way more efficient when moving a large amount of files.