распускать данные на таски и запускать параллельно?
Если это оправдано, то есть смысл
Для начала можно использовать Parallel.Foreach
Как то задавался таким вопросом, только чуть по другому звучал. До какого момента имеет смысл делить функцию на параллельные таски, если на кану стоит приоритет скорости, а не читабельности. Типа есть функция из 10 строк, где в каждой строке одна математическая операция. Имеет ли смысл с целью повышения производительности запустить каждую строчку в отдельно параллельном потоке. Итог таков: Мы никогда не превзойдём производительность процессора, так как всё равно всё происходит на одной машине, другое дело паралелить между другими машинами. И второе - в наше время редко одна функция может выполняться очень долгое время, если не писать программу в одном потоке всю и в одном классе. Так что вероятно, функция не будет большой и врятли имеет смысл её кусками паралелить
Тут не много другая ситуация, данных довольно таки много, порядка 1млн строк каждая строка из 20 полей примерно, на данный момент обработка идёт пачками, но очень долго идёт и очень хочется сократить время
Если там только математика то 100% не нужно, потому что как ты правильно сказал, процессор все равно соптимизирует прекрасно + JIT + еще там дальше оптимизации могут быть
с такими обьемами однозначно паралель
будет выигрыш
Можешь Hangfire подключить - думаю поможет за тебя сделать многое. Организовать очередь и т.д, заодно помониторить.
думаю это плохая идея тк будет срать логами в бд о выполненых тасках
Тогда почти 100% что надо параллелить
так у него своя БД
ну как сказать
Обсуждают сегодня