@Fox декодировал ошибку 1022, есть прояснения...
Бас Шалит в Многопотке
-
@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
-
@UserTrue said in Бас Шалит в Многопотке:
@sergerdn said in Бас Шалит в Многопотке:
И, так как я не специалист в NodeJs, вероятно, могу сильно ошибаться и ты можешь написать мне: все это фигня, оно работает не так, как ты думаешь.
Один из вариантов работы с тредами https://github.com/metarhia/noroutine
Спасибо большое, занес в закладки.
