Try using "Template" action and construct your text with hyerlinks than paste it to page.
Other option is to create simple LOCAL html page somewhere on your hard disk with
desired text and links, than open that local html page in another tab in BAS and than copy
from that tab to the tab where you are working.
Бас Шалит в Многопотке
-
Другое подходящее название я подобрать не смог. Суть проблемы.
В каждом потоке бас играет в игру набирает скор. Бас выступает в роли человека то-есть логики действий - решает игру js код в кубике Яваскрипт и уже на основе этого решения бас делает ход.
И суть проблемы такова чем больше потоков запущено тем хуже бас играет. условно с одним запущеним потоком(1 поток- 1аккаунт - 1 гра(не связаны)) он наберёт 1000 скора а с 10 потоками только 200. Закономерность такова чем больше потоков работает там хуже он играет.В можете возразить и указать на такие возможные проблемы...
Ты загружаешь пк сильнее и бот от того хуже решает.- Нет. Бот запускается на машине где загрузка при 20 потоках не более 50%.
Ты используешь глобальные переменные и результаты между потоками мешаются. - Ни одна глобальная переменная не была использована. Боле того я тоже на это грешил поэтому в качестве переменной куда записывается решение выступает список и каждый поток пишет данные в свою ячейку хотя и список тоже свой в каждом потоке так как он не глобален, ну да ладно.
- Ты не приставил тестовый скрпит.
Бот настолько широк и интегрирован с игрой что тут либо только весь скрипт кидать, да и то нужны аккаунты в играх.
- Нет. Бот запускается на машине где загрузка при 20 потоках не более 50%.
-
Пробовал запускать 10 экземпляров скрипта одновременно? Можно скомпилированный скрипт положить в 10 папок и дать ему 10 разных аккаунтов.
P.S.
Доподлинно не знаю, как работает BAS с NodeJS/Javascript , но NodeJS/Javascript однопоточный, это значит, что в один времени выполняется только одно действие. Даже если в фоне в одном процессе NodeJS/Javascript запущены 10 promise, они работают по очереди.
Может быть твоя проблема как-то связана с этим.А может быть, наоборот, у тебя слишком много процессов и сама Ось постоянно переключает контексты между ними, что дает падение производительности/вычислений. Этот вариант маловероятен, так как обычно это приводит к полной загрузке CPU.
-
@sergerdn Это получается, по сути, 10 БАС окон. так нагрузка возрастает в разы. Я запускаю не компил а XML. Иногда мне кажется что он начинает брать ходы как с соседнего потока.. особенно если пытаешься относительно малое время ставить между запросом решения хода типу 2секудны и чем дольше пауза тем лучше, но возможно, я просто себя уже накрутил на эту мысль.
По поводу меток, да я их использую но не часто, в основном только при обработке ошибок чтобы перемещается в начало или конец, в зависимости от нужды. Основная логика в циклах.
-
@hvrsh said in Бас Шалит в Многопотке:
@sergerdn Это получается, по сути, 10 БАС окон. так нагрузка возрастает в разы.
Да, 10 окон. Если сильно возрастает нагрузка - это может значить, что моя гипотеза об однопоточности верна, так как в одной копии скрипта условно код ждет своей очереди на выполнение. А при множестве копий - равномерно распределяется по ядрам CPU и нагрузка возрастает, потому что в один момент времени выполняется больше инструкций, так как разные ядра CPU.
-
@rkk9 said in Бас Шалит в Многопотке:
@sergerdn ох уж этот node js
Запущенные скрипты из разных директорий работают каждый со своим инстансом nodejs, так что это честно может увеличить скорость работы при частом использовании ноды.
-
@biohacker01 said in Бас Шалит в Многопотке:
@Fox Можно добиться такого же, не разможная на много папок все ?.
Как то запускать изолированные инстатны с каждым своим nodejs ?Нет
-
@biohacker01 можно запускать worker treads в nodejs https://nodejs.org/dist/latest-v18.x/docs/api/worker_threads.html
-
@rkk9 said in Бас Шалит в Многопотке:
@sergerdn ох уж этот node js
Со своими нюансами, как и многие другие инструменты. На сервере я обычно ставлю спереди nginx, сзади него по кол-ву ядер CPU инстансы приложения. Неважно на чем оно написано, что python, что NodeJS.
Это обычная практика.
-
@UserTrue said in Бас Шалит в Многопотке:
@biohacker01 можно запускать worker treads в nodejs https://nodejs.org/dist/latest-v18.x/docs/api/worker_threads.html
Интересно, как это все дело синхронизуется, чтобы не было race condition:
Unlike child_process or cluster, worker_threads can share memory. -
@UserTrue said in Бас Шалит в Многопотке:
@sergerdn не обязательно же использовать общую память.
Если не обязательно, то можно использовать _ child_process_, как самое простое в реализации(наверное). Стартовал поток в BAS, к нему стартовал child_process, закончил поток работу - child_process тоже закончил.
Это будет не самый хороший вариант, так как будет нагрузка на CPU в момент старта потока, но для начала можно сделать и так. К тому же это даст хорошую изоляцию как между разными потоками, что работают в один времени, так и в момент старта нового потока, так как он получит свежий child_process.
А потом уже можно сделать и shared worker pull и другие всякие "модные" вещи.
Наверное, это надо делать на стороне BAS самим разработчиком.
-
@sergerdn said in Бас Шалит в Многопотке:
сли не обязательно, то можно использовать _ child_process_, как самое простое в реализации(наверное). Стартовал поток в BAS, к нему стартовал child_process, закончил поток работу - child_process тоже закончил.
Я как бы знаю что и как использовать,или это мысли в слух? ))
-
@UserTrue said in Бас Шалит в Многопотке:
Я как бы знаю что и как использовать,или это мысли в слух? ))
Ключевое:
@sergerdn said in Бас Шалит в Многопотке:
Наверное, это надо делать на стороне BAS самим разработчиком.
И, так как я не специалист в NodeJs, вероятно, могу сильно ошибаться и ты можешь написать мне: все это фигня, оно работает не так, как ты думаешь.
И я видел в этой теме Fox(специально не тегаю его, он ругается иногда). Это в том числе для него мысли.
-
@sergerdn said in Бас Шалит в Многопотке:
И, так как я не специалист в NodeJs, вероятно, могу сильно ошибаться и ты можешь написать мне: все это фигня, оно работает не так, как ты думаешь.
Один из вариантов работы с тредами https://github.com/metarhia/noroutine
