Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
заполнение массива несколькими потоками
|
|||
|---|---|---|---|
|
#18+
имеется двумерный массив и десятки\сотни потоков его заполняют так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. это очень медленно. как бы этот массив заполнять сразу строками, не вычисляя номер строки? как list, но чтоб массив и безопасно для всех потоков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2020, 19:40 |
|
||
|
заполнение массива несколькими потоками
|
|||
|---|---|---|---|
|
#18+
qlewerok массив заполнять сразу строками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2020, 19:56 |
|
||
|
заполнение массива несколькими потоками
|
|||
|---|---|---|---|
|
#18+
Зачем синхронизировать Interlocked ? Достаточно так Код: c# 1. 2. 3. 4. Если надо очень быстро, то каждый поток пишет свой массив и в конце все массивы сливать в один. PS Это работает если код именно такой как ты написал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2020, 19:57 |
|
||
|
заполнение массива несколькими потоками
|
|||
|---|---|---|---|
|
#18+
Dima T, объединять массивы разве не дольше, чем сразу писать нормально в массив? Dima TДостаточно такда, действительно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2020, 20:06 |
|
||
|
заполнение массива несколькими потоками
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro qlewerok массив заполнять сразу строками +1 Сначала поток заполняет свой массив и добавляет его ConcurrentQueue<T> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2020, 20:08 |
|
||
|
заполнение массива несколькими потоками
|
|||
|---|---|---|---|
|
#18+
qlewerok объединять массивы разве не дольше, чем сразу писать нормально в массив? Надо проверять. Если ты с разных потоков одновременно пишешь в один массив - скорость записи падает раз в 10+ из-за синхронизации кэшей ядер проца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2020, 20:11 |
|
||
|
заполнение массива несколькими потоками
|
|||
|---|---|---|---|
|
#18+
Если не углубляться в технические особенности, то потолок распараллеливания ограничивает Закон Амдала . Там формулы простые, из них понятно что чем меньше синхронизации потоков тем лучше распараллеливается решение задачи. Поэтому обычно быстрее получается когда каждый поток посчитал свое, а в конце все отдали результат потоку, который склеивает все результаты в общую кучу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2020, 20:31 |
|
||
|
заполнение массива несколькими потоками
|
|||
|---|---|---|---|
|
#18+
Dima T, если я создаю массив подмассивов и из разных потоков записываю в разные подмассивы, то всё нормально там с ядрами проца? на выходе хорошо бы нормальный обычный массив иметь, т.к. его потом ещё сложно обрабатывать надо весь. в крайнем случае list. или в нём такие же проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2020, 20:32 |
|
||
|
заполнение массива несколькими потоками
|
|||
|---|---|---|---|
|
#18+
qlewerok Dima T, если я создаю массив подмассивов и из разных потоков записываю в разные подмассивы, то всё нормально там с ядрами проца? Не все нормально, но лучше чем было. Будет примерно так (VB не знаю, пишу схематично) Код: c# 1. 2. 3. 4. 5. Количество записей в общую память снижается, следовательно снижается количество перебросов между кэшами ядер. Насколько быстрее станет - надо тестить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2020, 20:38 |
|
||
|
заполнение массива несколькими потоками
|
|||
|---|---|---|---|
|
#18+
Dima Tmass(locali) = local_massнеотслеживаемая ошибка, когда прописываю эту строчку. объявляю глобально Код: vbnet 1. локально Код: vbnet 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2020, 21:29 |
|
||
|
заполнение массива несколькими потоками
|
|||
|---|---|---|---|
|
#18+
Можно попробовать ConcurrentDictionary. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2020, 18:13 |
|
||
|
|

start [/forum/topic.php?fid=20&fpage=6&tid=1398401]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 155ms |

| 0 / 0 |
