170 похожих чатов

Блять. я сделал прогу, которая после сборки какого-нибудь проекта брала

его файлы и делала их бэкап(просто копировала в новую папку). я решил сделать эту прогу многопоточной и сделал так, чтобы каждый файл копировался в новую папку в отдельном таске. но в итоге она делает это гораздо медленнее, чем копирование файлов поочередно.
суко, может вместо тасков использовать просто потоки?

12 ответов

12 просмотров

прикинь, копирование файлов зависит не от количества потоков )))

NonProgger- Автор вопроса

Если копируется на/с HDD - всё вполне логично. Да и некоторые SSD не очень хорошо ведут себя под смешанными операциями ¯\_(ツ)_/¯

NonProgger- Автор вопроса

ладно. зря выёбывался, так что вернусь обратно к синхронному копированию(

NonProgger
ладно. зря выёбывался, так что вернусь обратно к с...

А с чего вообще решили, что вам надо там что-то ускорять? Юзать таски - идея хорошая. Копировать несколько файлов одновременно - вот вообще не всегда, если затык в дисках можно только хуже сделать.

NonProgger
но почему с потоками медленнее?(((

Потому что теперь система кроме того что думает куда твои данные записать ещё и между собой выясняет кто первый получит доступ к железке, а потом ещё и переключается что бы дать другим шанс что то записать

NonProgger- Автор вопроса
SomebodyOdd
А с чего вообще решили, что вам надо там что-то ус...

ну. да. синхронно она делает это за +-93 мс. а с таксками за 2 секунды, так как начинает дико тупить

NonProgger
ну. да. синхронно она делает это за +-93 мс. а с т...

Вы так и не ответили на мой вопрос. Таски могут "дико тупить" потому что вы там наплодили 10 одновременных копий и HDD теперь упирается в свои 100 iops

NonProgger- Автор вопроса
SomebodyOdd
А с чего вообще решили, что вам надо там что-то ус...

хочу, чтобы всё было чуть ли не мгновенно. плюс я недавно начал изучать мультипоток и он мне очень нравится. теперь пихаю его куда-угодно

NonProgger
хочу, чтобы всё было чуть ли не мгновенно. плюс я ...

"Мгновенно" и "работа с дисками" - это очень странное сочетание

NonProgger
но почему с потоками медленнее?(((

Потому что смысл потоков в параллельных операциях, а не большей скорости

NonProgger- Автор вопроса
NonProgger
хочу, чтобы всё было чуть ли не мгновенно. плюс я ...

вообще всё это из-за того, что я захотел взять свою старую программу для бэкапа после сборки и улучшить её, добавив многопоток. но так как это сделало только хуже... добавлю функцию считать кол-во строк, игнорируя комментарии и пустые строки. хули, надо же хоть что-то добавить.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта