Чтобы выяснить, полезна ли многозадачность, сначала нужно понять, где находится узкое место.Узким местом файловой системы или файловой операции, без сомнения, будет диск.
Теперь минимальный многозадачность необходима, чтобы поддерживать отзывчивость графического интерфейса.Даже если это всего лишь один поток alterante или перемещение цикла в асинхронную функцию.
В некоторой степени многозадачность может даже принести пользу с минимальной пропускной способностью: в то время как одна задача в настоящее время облагает ЦП налогом до или послеработа, другой может писать.
Но управление многими операциями также требует ресурсов.И рано или поздно груз необходимости управлять всеми этими операциями будет поглощать все выгоды.Paralell Slowdown устанавливает: https://en.wikipedia.org/wiki/Parallel_slowdown
Только несколько операций являются приятными / захватывающими параллелями.Для них многопоточность замедляется очень поздно или даже никогда: https://en.wikipedia.org/wiki/Embarrassingly_parallel Ваш случай, без сомнения, не один из них.В самом деле, вы можете предположить, что Paralell Slowdown устанавливается очень быстро.
Редактировать:
Чтобы привести пример математики, давайте предположим, что каждая операция с файлом тратит 10 мс ЦП,200 мс для чтения / записи.
Если вы запускаете его последовательно в одном потоке без многозадачности более 200 файлов, это будет (200 + 10) * 200 мс или 42 секунды (клянусь, я этого не планировал).
Если с асинхронным режимом возможно, что одна или несколько операций выполняют свою работу ЦП 10 мс во время перезаписи другой операции.Так что для всех, кроме последнего и первого файла, его можно игнорировать.Так вдруг это: (200 * 200) +10 мс или 40,01 секунды.Сохранено почти 2 секунды.
Теперь запуск многих в основном увеличивает среднее время ЦП для каждого из них.Главным образом накладные расходы на выяснение того, какая операция должна получить процессорное время прямо сейчас.К тому моменту, когда издержки достигают в среднем около 1900 мс, вы возвращаетесь к 42 секундам.И если вы добавите больше после этого, накладные расходы на самом деле приведут к тому, что на работу ЦП будет затрачено больше времени, чем на всю запись.