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

nomarketing

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

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

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

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

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

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
а много данных в листе?
 

nomarketing

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

Sergodjan

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

nomarketing

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

Sergodjan

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

nomarketing

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

Sergodjan

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

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

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

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

nomarketing

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

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

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

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

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

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

Sergodjan

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

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

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

nomarketing

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

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

Sergodjan

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

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

nomarketing

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

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

Sergodjan

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

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

nomarketing

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

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

Sergodjan

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

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

nomarketing

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

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

Sergodjan

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

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

surrealmix

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

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113

rostonix

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

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

nomarketing

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

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

kyvour

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

rostonix

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

Ostap1992

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

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

burhanov88

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

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

Ostap1992

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

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

Phoenix78

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

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