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

Вопрос: есть функция которая обрабатывает некоторые значения, есть смысл

распускать данные на таски и запускать параллельно?

13 ответов

22 просмотра

Если это оправдано, то есть смысл

Для начала можно использовать Parallel.Foreach

Как то задавался таким вопросом, только чуть по другому звучал. До какого момента имеет смысл делить функцию на параллельные таски, если на кану стоит приоритет скорости, а не читабельности. Типа есть функция из 10 строк, где в каждой строке одна математическая операция. Имеет ли смысл с целью повышения производительности запустить каждую строчку в отдельно параллельном потоке. Итог таков: Мы никогда не превзойдём производительность процессора, так как всё равно всё происходит на одной машине, другое дело паралелить между другими машинами. И второе - в наше время редко одна функция может выполняться очень долгое время, если не писать программу в одном потоке всю и в одном классе. Так что вероятно, функция не будет большой и врятли имеет смысл её кусками паралелить

Svyatoslav- Автор вопроса
Genri
Как то задавался таким вопросом, только чуть по др...

Тут не много другая ситуация, данных довольно таки много, порядка 1млн строк каждая строка из 20 полей примерно, на данный момент обработка идёт пачками, но очень долго идёт и очень хочется сократить время

Genri
Как то задавался таким вопросом, только чуть по др...

Если там только математика то 100% не нужно, потому что как ты правильно сказал, процессор все равно соптимизирует прекрасно + JIT + еще там дальше оптимизации могут быть

с такими обьемами однозначно паралель

будет выигрыш

Svyatoslav
Тут не много другая ситуация, данных довольно таки...

Можешь Hangfire подключить - думаю поможет за тебя сделать многое. Организовать очередь и т.д, заодно помониторить.

думаю это плохая идея тк будет срать логами в бд о выполненых тасках

так у него своя БД

ну как сказать

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

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

а через 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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
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
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта