Многопоточность

nomarketing

Client
Регистрация
01.11.2013
Сообщения
913
Благодарностей
178
Баллы
43
Вообщем решил я передалать скрипт который работает по кругу с одним циклом пока не закончатся данные в листе.

Вообщем интересует как правильно создавать проэкты, для многопотока ?

Можете привести пару примеров многопотока, только не больших что бы не запутатся..

Т.е к примеру я хочу сделать постинг на сайт, но не в один поток а в 3 к примеру что бы быстрее это все происходило.

Или же многопоток будет рабортать и с моим круговым циклом ? вообщем расскажите не много что да как... а то вообще уже запутался.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 442
Благодарностей
10 002
Баллы
113
а много данных в листе?
 

nomarketing

Client
Регистрация
01.11.2013
Сообщения
913
Благодарностей
178
Баллы
43
Ну 800 штук де то. ну это я для примера сделал.. а вообще есть один проэкт который нужно мне переделать вот и думаю как его так правильно сделать что бы все ишло как надо, в том плане что запустил и в 5 потоков хотя бы ишел постинг. У меня ПРО - но тут дело не в этом, а в работе с потоками. Но дело в том что будет если я файл в 1-2мб отдам ? или чуть больше - вообщем меня интересует логика работы с потоками .. если она есть а не как я для простоты по 1 кругу гоняю, ну я для примера себе сделал берем данные и удаляем при взятии, ну и так по кругу с одним счетчиком
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 442
Благодарностей
10 002
Баллы
113
самое главное правило при оптимизации проектов, в том числе для многопотока - не зацикливать чрезмерно, а желательно вообще не зацикливать, если есть возможность делать по одному циклу на выполнение.. в кр. случае после определенного кол-ва циклов (не оч. большого, по моему 800 - это перебор, нужно раздробить) перезагружать инстансы, тогда память будет освобождаться..
 

nomarketing

Client
Регистрация
01.11.2013
Сообщения
913
Благодарностей
178
Баллы
43
самое главное правило при оптимизации проектов, в том числе для многопотока - не зацикливать чрезмерно, а желательно вообще не зацикливать, если есть возможность делать по одному циклу на выполнение.. в кр. случае после определенного кол-ва циклов (не оч. большого, по моему 800 - это перебор, нужно раздробить) перезагружать инстансы, тогда память будет освобождаться..
Как это не зацикливать ? а как тогда данные будут крутится ?
Помойму все основано на цикле - ? или я ошибаюсь ? В плане разрубить ?
На сколько я видел все реггеры постеры основыны на одной и той же логике.. цикл - берем данные - удаляем, или счетчиком+1 и по кругу до конца ?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 442
Благодарностей
10 002
Баллы
113
я имел ввиду какие то однотипные циклы, типа - взяли данные, авторизовались, запостили, опять взяли данные, авторизовались, запостили и т.д... если в проекте есть такие однотипные циклы, то лучше порубить эти циклы на отдельные проходы проекта..
 

nomarketing

Client
Регистрация
01.11.2013
Сообщения
913
Благодарностей
178
Баллы
43
я имел ввиду какие то однотипные циклы, типа - взяли данные, авторизовались, запостили, опять взяли данные, авторизовались, запостили и т.д... если в проекте есть такие однотипные циклы, то лучше порубить эти циклы на отдельные проходы проекта..
Эм даже в этом случае не чего не понял :-) - все равно ИДЕТ 1 ЦИКЛ :-) как его можно порубить - допустим мне надо в 5 блогов запостить по 1 статье из файла, цикл всегда один, логинимся в блог, постим, удаляем данные, или увелич счетчик+1, логинимся, постим, удаляем счетчик+1 :-) цикл идет непрерывно пока незакончатся данный к примеру в листе с данными для авторизации в блоги - вообщем мы ходим по кругу но я вас не пойму как можно рубить один ЦИКЛ )
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 442
Благодарностей
10 002
Баллы
113
вместо того, чтобы постить в одном проекте во много блогов, можно сделать проект с 1 проходом (пост в один блог):

0: запуск проекта
1. авторизовался в блог
2. запостил
3. проект закончил выполняться

и запускать 100500 попыток..

если невозможно порубить многоцикловый проект на отдельные проходы, то используйте многоцикловый, но тут можно упереться в большие утечки по памяти..
вы спрашивали об оптимизации для многопотока, вот вам ответ - если проект тяжелый, многоцикловый, то может получитсья так, что много потоков на таком проекте вы не сможете запустить, упретесь в момент, когда оперативка закончится и винда будет дико свопиться..
 
Последнее редактирование:

nomarketing

Client
Регистрация
01.11.2013
Сообщения
913
Благодарностей
178
Баллы
43
вместо того, чтобы постить в одном проекте во много блогов, можно сделать проект с 1 проходом (пост в один блог):

0: запуск проекта
1. авторизовался в блог
2. запостил
3. проект закончил выполняться

и запускать 100500 попыток..

если невозможно порубить многоцикловый проект на отдельные проходы, то используйте многоцикловый, но тут можно упереться в большие утечки по памяти..
вы спрашивали об оптимизации для многопотока, вот вам ответ - если проект тяжелый, многоцикловый, то может получитсья так, что много потоков на таком проекте вы не сможете запустить, упретесь в момент, когда оперативка закончится и винда будет дико свопиться..
Почти понял, но не совсем.. после 3 степа, что дальше происходит ?

0: запуск проекта
1. авторизовался в блог
2. запостил
3. проект закончил выполняться

А потом что ? проэкт закончил выполнятся и ? что потом ? - я так понимаю проэкт закрывается и открывается заного для выполнение ?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 442
Благодарностей
10 002
Баллы
113
Почти понял, но не совсем.. после 3 степа, что дальше происходит ?

0: запуск проекта
1. авторизовался в блог
2. запостил
3. проект закончил выполняться

А потом что ? проэкт закончил выполнятся и ? что потом ? - я так понимаю проэкт закрывается и открывается заного для выполнение ?
после него завершение инстанса/потока и запуск по новой с 0 степа..
 

nomarketing

Client
Регистрация
01.11.2013
Сообщения
913
Благодарностей
178
Баллы
43
после него завершение инстанса/потока и запуск по новой с 0 степа..
Ясно, этот как в хумане - рестар апп, но в таком случае данных либо должны удалятся. :-)

Хотел еще спросить,зависит ли жер ресурсов, от самих блок схем в проэкте ? т.е к примеру блок схем может быть 20 а в цикле их 5 к примеру, т.е программа 1 раз доходит до цикла, потом работает в только в цикле.
Вот хотел уточнить влияет это как то ?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 442
Благодарностей
10 002
Баллы
113
Ясно, этот как в хумане - рестар апп, но в таком случае данных либо должны удалятся. :-)

Хотел еще спросить,зависит ли жер ресурсов, от самих блок схем в проэкте ? т.е к примеру блок схем может быть 20 а в цикле их 5 к примеру, т.е программа 1 раз доходит до цикла, потом работает в только в цикле.
Вот хотел уточнить влияет это как то ?
да, зависит..
но я так понял не как в хумане, а просто проект подходит к своему завершению, к последнему экшену в проекте, от которого уже нет ответвлений (это 3-ий степ)..
 

nomarketing

Client
Регистрация
01.11.2013
Сообщения
913
Благодарностей
178
Баллы
43
Ну в хумане идет рестарт апп - и все начинается с начала - в вашей логике тоже самое как я понял ? т.е постив в 1 блог, инстант закрывается - перегружается и начинает по новому с 0 степа (т.е вся суть в перезагрузки инстанта) типа что бы не забивал память (такая же суть и у хумана)

На счет да зависит, это плохо... придется резать этапа это делать стопицот скриптов...
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 442
Благодарностей
10 002
Баллы
113
Ну в хумане идет рестарт апп - и все начинается с начала - в вашей логике тоже самое как я понял ? т.е постив в 1 блог, инстант закрывается - перегружается и начинает по новому с 0 степа (т.е вся суть в перезагрузки инстанта) типа что бы не забивал память (такая же суть и у хумана)

На счет да зависит, это плохо... придется резать этапа это делать стопицот скриптов...
ну тогда, да, как в хумане. .просто в ЗП есть поле для задания попыток, и можно записать туда -1 (бесконечное число раз запуска) или конкретное число..
 

nomarketing

Client
Регистрация
01.11.2013
Сообщения
913
Благодарностей
178
Баллы
43
ну тогда, да, как в хумане. .просто в ЗП есть поле для задания попыток, и можно записать туда -1 (бесконечное число раз запуска) или конкретное число..
Ну да, хоть какой то кот со мной общается сдесь :-) такое впечетление что мы тут только вдвоем )
А на счет - влияние блоков плохо конечно но буду что то думать - ибо резать на 100500 скриптов это не вариант. Может скажете сколько у вас весит самый ну скажем если есть крупный скрипт ?

Думал тут гонщик отпишется видать заработался сегодня :-)
 
Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 442
Благодарностей
10 002
Баллы
113
Ну да, хоть какой то кот со мной общается сдесь :-) такое впечетление что мы тут только вдвоем )
А на счет - влияние блоков плохо конечно но буду что то думать - ибо резать на 100500 скриптов это не вариант. Может скажете сколько у вас весит самый ну скажем если есть крупный скрипт ?

Думал тут гонщик отпишется видать заработался сегодня :-)
самый самый крупный кажись около 900 с чем то Кб..
но я не такой продвинутый зеннописатель, делаю на кирпичиках все, почти не использую снипеты C#, GET-запросы и прочие ухищрения..
коты рано легли спать наверное.. а кто такой гонщик? (надеюсь не призрачный гонщик в исполнении Николаса Кейджа) :-)
 

nomarketing

Client
Регистрация
01.11.2013
Сообщения
913
Благодарностей
178
Баллы
43
самый самый крупный кажись около 900 с чем то Кб..
но я не такой продвинутый зеннописатель, делаю на кирпичиках все, почти не использую снипеты C#, GET-запросы и прочие ухищрения..
коты рано легли спать наверное.. а кто такой гонщик? (надеюсь не призрачный гонщик в исполнении Николаса Кейджа) :-)
Ну я тоже геты не юзаю, в особых случаях, я вот еще не помню в 5 версии был свич или нет, щас вот начал переделывать, поменял все на свич удобно до ужаса :-) а то я ифами зафлудил пол проэкта ) в бывалые времена )
Ну а так да лучше конечно оптимизировать сразу все, потому что потом.. то проскоки то заскоки вообщем откладка еще то время забирает если все делать на тяп ляп )
Гонщег... нууу на аве там парень какой то но я просто помню его он в фильме про гонщика снимался там они на машине летали везде вообще та еще банда :-)

А на счет моего постинга то только что глянул - 332 кб.. но я щас вот все переделываю глянем сколько будет после переоптимизацции :-)
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 442
Благодарностей
10 002
Баллы
113
Ну я тоже геты не юзаю, в особых случаях, я вот еще не помню в 5 версии был свич или нет, щас вот начал переделывать, поменял все на свич удобно до ужаса :-) а то я ифами зафлудил пол проэкта ) в бывалые времена )
Ну а так да лучше конечно оптимизировать сразу все, потому что потом.. то проскоки то заскоки вообщем откладка еще то время забирает если все делать на тяп ляп )
Гонщег... нууу на аве там парень какой то но я просто помню его он в фильме про гонщика снимался там они на машине летали везде вообще та еще банда :-)

А на счет моего постинга то только что глянул - 332 кб.. но я щас вот все переделываю глянем сколько будет после переоптимизацции :-)
да, тоже сидишь-сидишь иногда, то влом номрально сразу сделать, то на потом оставляешь, а потом забывается уже что то, и в результате получаешь проект под 900 кб.. :-)
экшен свитч с 4 версии точно был, насчте 3-ей я не в курсе, с 4-ки начал..
 

surrealmix

Client
Регистрация
07.03.2013
Сообщения
715
Благодарностей
409
Баллы
63

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 442
Благодарностей
10 002
Баллы
113

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 068
Благодарностей
5 725
Баллы
113
:D:D:D

Количество экшенов прям критично на работу не влияет.
Если у вас поиск по картинке. это плохо для производительнсоти, например. А простые операции с текстом, они ж выполняются в доли секунд, сколько надо. столько и используйте)
Когда работаете с файлами в многопотоке рекомендуется использовать списки и таблицы с привязкой к файлу: путь прописан к файлу в настройках списка + стоят галки "сохранять изменения" и "загружать из файла".
В этом случае все потоки будут использовать одну версию файла, которая будет лежать в оперативке. Если синхронизации нет, то каждый поток будет тратить оперативку на содержимое файла, причем оперативки нужно в пару раз больше. чем объем файла на такие вещи.
Еще один важный фактор6 время выполнения шаблона и внутренние циклы. Пример плохого шаблона: регистрация на сайте многократная, когда конец шаблона соединен с началом в бесконечный цикл. Пример хорошего: 1 проход = 1 регистрация и шаблон завершается. И мы его уже в постере ставим на выполнение 100 раз, например.
если нужно делать однотипные действия на сайте. то лучше делать ограниченные циклы, поработали пару минут. закончили. стартуем проект заново.
Постер как и любой браузер имеет утечки памяти. Поэтому проеты, работающие часами имеют все шансы рухнуть в итоге. Еще и файлы могут попорить входные)
 
  • Спасибо
Реакции: izubr

nomarketing

Client
Регистрация
01.11.2013
Сообщения
913
Благодарностей
178
Баллы
43
:D:D:D

Количество экшенов прям критично на работу не влияет.
Если у вас поиск по картинке. это плохо для производительнсоти, например. А простые операции с текстом, они ж выполняются в доли секунд, сколько надо. столько и используйте)
Когда работаете с файлами в многопотоке рекомендуется использовать списки и таблицы с привязкой к файлу: путь прописан к файлу в настройках списка + стоят галки "сохранять изменения" и "загружать из файла".
В этом случае все потоки будут использовать одну версию файла, которая будет лежать в оперативке. Если синхронизации нет, то каждый поток будет тратить оперативку на содержимое файла, причем оперативки нужно в пару раз больше. чем объем файла на такие вещи.
Еще один важный фактор6 время выполнения шаблона и внутренние циклы. Пример плохого шаблона: регистрация на сайте многократная, когда конец шаблона соединен с началом в бесконечный цикл. Пример хорошего: 1 проход = 1 регистрация и шаблон завершается. И мы его уже в постере ставим на выполнение 100 раз, например.
если нужно делать однотипные действия на сайте. то лучше делать ограниченные циклы, поработали пару минут. закончили. стартуем проект заново.
Постер как и любой браузер имеет утечки памяти. Поэтому проеты, работающие часами имеют все шансы рухнуть в итоге. Еще и файлы могут попорить входные)
Спасибо что разьяснили, "то лучше делать ограниченные циклы, поработали пару минут. закончили" ну пару минут это мало я думаю :-) но смысл ясен - перегружать инстант иногда что бы не забивать память.
Ну чтож будем реализовывать :-) Спасибо ! :bu:
 

kyvour

Активный пользователь
Регистрация
17.05.2014
Сообщения
186
Благодарностей
36
Баллы
28
Когда работаете с файлами в многопотоке рекомендуется использовать списки и таблицы с привязкой к файлу: путь прописан к файлу в настройках списка + стоят галки "сохранять изменения" и "загружать из файла".В этом случае все потоки будут использовать одну версию файла, которая будет лежать в оперативке. Если синхронизации нет, то каждый поток будет тратить оперативку на содержимое файла, причем оперативки нужно в пару раз больше. чем объем файла на такие вещи.
А есть разница как привязывать, сразу в настройках списка к какому то конкретному файлу с известным названиям или через екшн привязки, где можно вместо названия юзать переменную?
А то у меня только второй вариант выходит всегда)
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 068
Благодарностей
5 725
Баллы
113
Можно и так и так. Просто если путь к файлу задается переменной, то нужно работать через привязку к файлу (экшен)
 

Ostap1992

Client
Регистрация
26.02.2020
Сообщения
75
Благодарностей
10
Баллы
8
разобрался со всем но остался 1 вопрос
как сделать потоки( вообще не соображу )
по мне как я понял
нужно создать копии ( но было бы круто если бы сама зена соображала какая копия работая и выбирала свободную)

ну а так подскажите как запустить потоки за скрин и видео благодарочка заранее
 

burhanov88

Client
Регистрация
08.04.2015
Сообщения
71
Благодарностей
23
Баллы
8
разобрался со всем но остался 1 вопрос
как сделать потоки( вообще не соображу )
по мне как я понял
нужно создать копии ( но было бы круто если бы сама зена соображала какая копия работая и выбирала свободную)

ну а так подскажите как запустить потоки за скрин и видео благодарочка заранее
Зачем копии? Более детально опишите задачу вам помогут.
Какие исходные данные?
 

Ostap1992

Client
Регистрация
26.02.2020
Сообщения
75
Благодарностей
10
Баллы
8
Зачем копии? Более детально опишите задачу вам помогут.
Какие исходные данные?
я думаю задача предельна ясна

есть проект и его надо запустить в потоках так как 1 окно шаблона =1 копи эмуля
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 736
Баллы
113
  • Спасибо
Реакции: burhanov88

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)