0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 68
|
|
1 | |
.NET 4.x Какие потоки лучше при обработки небольшого объёма информации, но при большом количестве потоков12.02.2014, 19:27. Показов 2528. Ответов 25
Метки нет Все метки)
(
Собственно заинтересовали следующие вопросы:
0
|
|
12.02.2014, 19:27 | |
Ответы с готовыми решениями:
25
Ошибки на большом количестве потоков с сокетами Зависание Excel-я при попытке копирования небольшого объёма информации Json не сработал при большом количестве информации
|
![]() |
|
12.02.2014, 19:33 | 2 |
1. Зависит от приоритета. С одинаковым приоритетом - примерно одинаково.
2. Тот, который запущен раньше. ![]() 3, 4. Все зависит от ситуации - какие цели стоят перед программой, вряд ли можно вот так точно сказать... 5. Асинхронный. ![]() 6. Тот, который лучше всего выполняет поставленную задачу.
1
|
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 68
|
|
12.02.2014, 19:37 [ТС] | 3 |
0
|
![]() |
|
12.02.2014, 19:42 | 4 |
Это пул потоков. Именно асинхронный, то есть работающий асинхронно. Запускаете асинхронно поток, и все, он работает... Поток сам по себе - это поток, и все, а какой - зависит от того, как он был запущен.
0
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
12.02.2014, 19:42 | 5 |
юзайте ThreadPool или TPL и будет вам счастье, и забудьте про ручное создание потоков
1
|
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 68
|
|
12.02.2014, 19:48 [ТС] | 6 |
0
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
12.02.2014, 20:09 | 8 |
insite2012,
![]() Добавлено через 2 минуты пока по вопросам параллелизма могу предложить статью Работа с потоками в C# из RSDN, позже, если не буду загружен, покажу пару примеров
2
|
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 68
|
|
12.02.2014, 20:20 [ТС] | 10 |
Допустим есть след. задача:
имеется файл с большим количеством строк(например 9млрд.) и нужно проверить каждую строку файла с опред. текстом, если совпадает, то сохранить в другой текстовый файл. Я использовал обычный Thread. Но вот просто я подумал, что может быть при использовании потока ThreadPool или Task работа потока будет быстрее
0
|
708 / 708 / 226
Регистрация: 04.03.2013
Сообщений: 1,384
|
|
12.02.2014, 20:46 | 12 |
Едва ли можно придумать что-то лучшее чем асинхронная обработка файла в отдельном потоке. Распараллеливать здесь нечего т.к. детерминированной коллекции строк как таковой нет (если вы конечно не собираетесь загружать все 9ккк строк в память).
0
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
12.02.2014, 23:58 | 13 |
9 млрд строк? вы ничего не путаете? если это так то у вас будут безумные объемы данных
если принять что средняя строка = 100 символам то потребление памяти можно рассчитать по формуле память = размер символа в байтах*количество символов*количество строк что равно 2*100*9*10^9 = 18*10^11 что примерно равно 1,63 терабайта при данной задаче вам нужно смотреть в сторону оптимизации хранения данных, к примеру данные хранить не в текстовых файлах а в базе данных и использовать для доступа к данным правильно построенные индексы
0
|
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 68
|
|
13.02.2014, 02:06 [ТС] | 14 |
агерон, мм.....ну как бы суть использования потоков... чтобы каким либо образом асинхронно получать доступ... давайте возьмём к примеру 9 млн. строк.
Просто хочу с Вами посоветоваться какие потоки лучше использовать.
0
|
352 / 331 / 49
Регистрация: 12.12.2011
Сообщений: 563
|
|
13.02.2014, 02:10 | 15 |
Любые, точнее одни, они только для разных систем различаются. Все потоки одинаковые, есть различные обертки но сути потоков они не меняют
1
|
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 68
|
|
13.02.2014, 02:17 [ТС] | 16 |
0
|
burning1ife
|
||||||
13.02.2014, 06:34 | 17 | |||||
Один из самых быстрых алгоритмов сравнения на мой взгляд, хотя может кто предложит и быстрее
из http://msdn.microsoft.com/en-u... .110).aspx я понял, что его есть смысл использовать в случаях: 1. если операция над каждым элементом довольно продолжительная. 2. большое кол-во элементов в коллекции. 3. чем больше ядер, тем лучше.
0
|
352 / 331 / 49
Регистрация: 12.12.2011
Сообщений: 563
|
||||||
13.02.2014, 09:54 | 18 | |||||
Провел бенчмарк, выполнял поиск с использованием LINQ, PLINQ и чистых потоков, в файле на 100млн строк.
В последнем тесте мог накосячить, лучше перепроверить, но первые 2 дают вполне очевидный результат.
2
|
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 68
|
|
13.02.2014, 18:08 [ТС] | 20 |
Yukikaze, спасибо за данный тест.
т.е. из теста следует, что лучше всего использовать LINQ... Никогда ещё не использовал LINQ.
0
|
13.02.2014, 18:08 | |
Помогаю со студенческими работами здесь
20
Unrecognized token при большом количестве совпадений Утечка памяти при большом количестве сообщений Вращение 3д графика при большом количестве выводимых данных При большом количестве контролов форма плохо прорисовывается Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |