Отключите все лишнее на целевой странице если она одна, это реально сделать - например скрипты всяких фейсбуков, сторонней аналитики и так далее. Обычно сервесы используют много сторонних скриптов, которые не влияют на работу сайта, но сильно нагружают проц.
Смотрите как идет распределение нагрузки - возможно оно не сплашное, а пиками - тогда можно попробовать запускать потоки более равномерно. Чтоб избегать этих пиков.
Чаще всего можно отрисовку снизить вплоть до 10 (ну 20) .... На загрузку проца, это как раз сильно влияет.
Если сервер свой и без видюхи, то стоит поставить в него видюху.
50 в нынешних условиях для баса с браузером, достаточно много. Можно попробовать разбить на несколько копий баса по 25 например.
Можно использовать рам диск для работы с профилями - но это уже продвинутый уровень.
Подвисает BAS из за асинхронных функций.
-
Приветствую!
Вопрос, есть главный поток который работает с телеграмм ботом и вызывает асинхронные функции, в процессе выполнения внутри асинхронных функций если они подвисают то зависает БАС целиком?
Может есть варианты выделять асинхронным функциям отдельный свой айди поток в диспетчере задач чтобы если конкретная асинхронная функция в данный момент подвисала то не затрагивала полностью весь БАС.
Как найти какие асинхронные функции делают подвисание бо их куча.. отладка может какая есть специальная? или другое решение то подскажите пожалуйста.
Спасибо за советы. -
Javascript однопоточный. Один зависшая операция влияет на весь скрипт.
@DrPrime said in Подвисает BAS из за асинхронных функций.:
Решается добавлением микропаузы в 20- 100 мс в таких циклах.
Это как раз позволяет планировщику переключить задачу.
-
заметил тоже это если в асинхронку передавать большой массив в моём случае 90к+ элементов, хз как быть, просто не хотелось бы в асинхронке каждый раз читать и создавать массив, а хотелось бы запуске скрипта один раз создать и передавать в асинхронку, для моих нужд мне хватает версии 23.2.2, на более новых не пробовал проверить это
-
@genericname1 so I do not know how to solve this problem(
-
@ElTigre работайте через базу данных или даже через файл, скорей всего бас передает данные в асинхронные функции в формате json, поэтому и подвисает пока его в json и обратно гоняет.
Например вы можете записать этот список в файл со случайным именем и передать в функцию только имя файла, а в ней уже его прочитать и удалить. Костыль , но зато подписать не будет
-
@UserTrue у меня изначально читает ресурс в список, затем его в json перегоняет, но это до асинхронки происходит, а вот когда видать она запускается, виснет.
Щас по пробовал без передачи данных в асинхронку, а через глобальные переменные, так вот теперь бас виснет когда он из обычной переменной, Json массив записывает в глобальную переменную.(а если массив не такой большой, то всё ок)
Ещё пробовал каждый раз тупо читать в список в самой асинхронке и перегонять в Json, но мне это не нужно каждый раз делать при запуске асинхронки, т.к. это тратит определённое время каждый запуск функции, но при таком варианте всё работает. Только дольше отрабатывает функцию и за большого массива(
Вот даже щас в режиме записи бас повис записывая массив из обычной переменной в глобальную(