|
Сколько максимум параллельных потоков можно запустить? | ☑ | ||
---|---|---|---|---|
0
Shur1cIT
01.11.16
✎
13:31
|
Достаточно большой текстовик, получить всё заросом из него и за один запрос всё обработать не получаеться.
Думаю запустить загрузку в несколько потоков через фоновые задачи, вопрос сколько максиум потоков возможно? какие и сколько ресурсов пожирает каждый поток? например 50 потоков реально запустить? |
|||
1
Живой Ископаемый
01.11.16
✎
13:40
|
чувак, тока эмпирически. Наверное есть какие-то исследования на этот счет, можно подвести какую-то теорию типа одно ядро - один поток, но например когда я писал мобильное приложение, то скачивание в фоне по одному файлу было достаточно медленным, а 100-ни файлов одновременно в отдельных потоках - тоже медленным. И вот почему-то закачка в 10 потоках дало приемлемую скорость, хотя ядер на девайсе было всего два.
|
|||
2
Живой Ископаемый
01.11.16
✎
13:40
|
а кстати, как ты потоки запускаешь? в 1С?
|
|||
3
xaozai
01.11.16
✎
13:45
|
В Windows есть ограничение на количество потоков, создаваемых одним процессом, обусловленное небесконечностью адресного пространства процесса.
Касательно 1С, думаю, количество возможных потоков можно определить только экспериментально. 50 - может и прокатит... |
|||
4
TormozIT
гуру
01.11.16
✎
13:47
|
Запускай 4. Дальше обычно не оправдано на текущих десктопных CPU, имеющих 4 ядра.
|
|||
5
Shur1cIT
01.11.16
✎
13:47
|
(2) ФоновыеЗадания.Выполнить(«ОбщийМодуль.ЗагрузитьИзТХТ», НаборПараметров);
в параментрах передавать начальный номер строки и конечный |
|||
6
Shur1cIT
01.11.16
✎
13:48
|
(4) он выполняеться как фоновая задача на сервера
|
|||
7
Живой Ископаемый
01.11.16
✎
13:50
|
2(4) может он на сервере с 8 камнями?
|
|||
8
Shur1cIT
01.11.16
✎
13:51
|
(7) 8*2 плюс гипертрейдиг
|
|||
9
Serginio1
01.11.16
✎
14:16
|
Обычно 2*количество ядер. Но нужно учитывать, что их используют другие процессы и потоки.
Лучше использовать асинхронные методы https://habrahabr.ru/post/307360/ http://catalog.mista.ru/public/466052/ см Выполнитель=Врап.ПолучитьАсинхронныйВыполнитель(); ДобавитьОбработчик Выполнитель.ПриОкончанииВыполненияЗадачи, ПриОкончанииВыполнения; |
|||
10
МихаилМ
02.11.16
✎
16:19
|
напишите суда, какое ускорение будет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |