Надо решение для ускорение в работе в многопотоке C#
42 PLNЕсть шаблон под zennoposter, работаю в многопотоке 1500-2000 потоков, в шаблоне есть список юзерагентов 500 мегабайт весит - беру случайную строку, а так же список ящиков - беру с удалением строку из большого списка - тоже порядка 500 мегабайт. Так вот, в многопотоке на этих двух действиях идут огромные тупняки. Что было сделано
- разбивание одного шаблона на 50 шаблонов и 50 файлов (чтобы не с одним файлом работал, а каждые 30 потоков только со своими файлами)
- перенос в бд - innodb с построчной блокировкой
- перенос в ramdisk
ну вроде еще какие-то были попытки, типа работа в шарпе чисто с файлами и т.д. - самое действенное было - перенос в ram disk, но скорость улучшилась в раза три, не более. Так вот, надо действенное решение для этой задачи. Вроде можно в отдельную либу выносить или грузить список в память, но хз на сколько это будет действенно. Надо рабочее решение.
-

Надо смотреть подробнее алгоритм: как идут потоки, как идет расход памяти, как выделяются потоки и т. д. Как говорится: вопрос в деталях. Что можно сказать сразу, так это то, что самый большой расход быстродействия - запись файлов. Любое обращение к диску, особенно к винту, а не ssd-шке - а там все идет тупо в одну очередь и любое обращение на переразметку диска (для нового файла) - это жуткий расход времени и ресурсов, не говоря о том, что эти задачи имеют самый низкий приоритет. Можем пообщаться в личке, чтобы понять, смогу ли я чем-то помочь или нужен более опытный разработчик.
-
1500-2000
если у вас нету 1500-2000 ядер процесора, то такое количесство потоков только замедляет рассчеты -
Если вы берете емейлы подряд, то попробуйте НЕ удалять строку из списка - просто храните номер последней использованной строки.
-
Загрузіть файл в масив , розділіть масив на таку кількість елементів, скільки буде потоків, передайте в кожен поток по елементу.
P.S. незнаю чи це буде працювати в Zeno poster
-
Предлагаю посмотреть в сторону Akka.NET, в свое время внедрял данную технологию в приложениях связанное с торговлей на бирже, где нагрузка гораздо больше чем в вашем приложении. Не знаю деталей но если можно в вашем приложении можно разбить процесс на большое количество мелких операций - акка подойдет как никогда, легка в освоении, масштабируема.
-
Aktualne zlecenia dla freelancerów w kategorii C#
Dopracowanie 1C UT 11 dla TSD Zebra (RDP): różne sygnały dźwiękowe podczas skanowania
84 PLN
Konfiguracja: 1C UT 11 Adresowy magazyn Terminal Zebra TC26 Praca przez RDP Skanowanie towarów odbywa się w dokumentach przyjęcia, umiejscowienia, selekcji oraz innych operacjach magazynowych. Aktualny problem: Magazynierzy pracują przez terminal Zebra. Podczas skanowania nie… C#, Bazy danych i SQL ∙ 5 dni 3 godziny temu ∙ 6 ofert |