его файлы и делала их бэкап(просто копировала в новую папку). я решил сделать эту прогу многопоточной и сделал так, чтобы каждый файл копировался в новую папку в отдельном таске. но в итоге она делает это гораздо медленнее, чем копирование файлов поочередно.
суко, может вместо тасков использовать просто потоки?
прикинь, копирование файлов зависит не от количества потоков )))
но почему с потоками медленнее?(((
Если копируется на/с HDD - всё вполне логично. Да и некоторые SSD не очень хорошо ведут себя под смешанными операциями ¯\_(ツ)_/¯
ладно. зря выёбывался, так что вернусь обратно к синхронному копированию(
А с чего вообще решили, что вам надо там что-то ускорять? Юзать таски - идея хорошая. Копировать несколько файлов одновременно - вот вообще не всегда, если затык в дисках можно только хуже сделать.
Потому что теперь система кроме того что думает куда твои данные записать ещё и между собой выясняет кто первый получит доступ к железке, а потом ещё и переключается что бы дать другим шанс что то записать
ну. да. синхронно она делает это за +-93 мс. а с таксками за 2 секунды, так как начинает дико тупить
Вы так и не ответили на мой вопрос. Таски могут "дико тупить" потому что вы там наплодили 10 одновременных копий и HDD теперь упирается в свои 100 iops
хочу, чтобы всё было чуть ли не мгновенно. плюс я недавно начал изучать мультипоток и он мне очень нравится. теперь пихаю его куда-угодно
"Мгновенно" и "работа с дисками" - это очень странное сочетание
Потому что смысл потоков в параллельных операциях, а не большей скорости
вообще всё это из-за того, что я захотел взять свою старую программу для бэкапа после сборки и улучшить её, добавив многопоток. но так как это сделало только хуже... добавлю функцию считать кол-во строк, игнорируя комментарии и пустые строки. хули, надо же хоть что-то добавить.
Обсуждают сегодня