On Windows, QtCore.QThread.idealThreadCount() simply returns the number of logical cores on your computer. However, downloading things is an IO-bound, not CPU bound task. In particular, it is limited by the TCP bandwidth-delay-product, which is why download accelerators demonstrate a speedup with multi-threaded downloading.
In my experiments, I found that increasing the number of threads from 8 to 64 beyond the number of CPU cores increased my mid-extraction bandwidth utilization from 60 Mbps to 99.5 Mbps on a 100 Mbps Ethernet connection when downloading from Eurome.
On Windows,
QtCore.QThread.idealThreadCount()
simply returns the number of logical cores on your computer. However, downloading things is an IO-bound, not CPU bound task. In particular, it is limited by the TCP bandwidth-delay-product, which is why download accelerators demonstrate a speedup with multi-threaded downloading.In my experiments, I found that increasing the number of threads from 8 to 64 beyond the number of CPU cores increased my mid-extraction bandwidth utilization from 60 Mbps to 99.5 Mbps on a 100 Mbps Ethernet connection when downloading from Eurome.