У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Вопрос по буферу обмена.
-
@senerg через глобальную переменную, собираетесть что либо писать в буфер обмена устанавливайте её например в true, записываете данные в буфер обмена, и вставляете эти данные куда нужно, затем глобальную переменную устанавливаете в false. Ну и перед записью в буфер всегда проверяете состояние этой переменной, если она false значит можно юзать буфер, если true то ждете какое то время и проверяете снова. Я таки образом реализовывал в многопоточности.
-
@senerg said in Вопрос по буферу обмена.:
@bigorat Не знаете, вставка из буфера будет полным аналогом действия "Ввод текста" с интервалом 0 и действия self.value = "value", или есть какие-то нюансы?
Действие "ввод текста" введёт только текст, когда из буфер обмена можно добавить картинки и разметку
-
@senerg Всё зависит от скриптов, бывает что скрипт ввёл значение в поле через
self.value = "value", а нажать далее страница не даёт, пишет введите данные. Так же и быстрый ввод текста не везде сработает, как и ctrl+v (v надо обязательно маленькую) может где то не сработать. -
@bigorat Застрял на этой же проблема.
Все конечно хорошо , НО , как в первый раз активировать глобальную false?
Если изначально она true а для продолжения работы скрипта нужна false ?
Для запуска первого хотя бы потока глобальная должна быть false, а далее уже скрип подтянет по вашему примеру.
Поделитесь скриптом пожалуйста уже все перепробовал... -
@5577mmsi said in Вопрос по буферу обмена.:
@bigorat Застрял на этой же проблема.
Все конечно хорошо , НО , как в первый раз активировать глобальную false?
Если изначально она true а для продолжения работы скрипта нужна false ?
Для запуска первого хотя бы потока глобальная должна быть false, а далее уже скрип подтянет по вашему примеру.
Поделитесь скриптом пожалуйста уже все перепробовал...Я выкладывал на форуме готовый скрипт с примером использования блокировки потоков через глобальную переменную для работы с буфером обмена
-
@gurkin4 said in Вопрос по буферу обмена.:
Очень многие программы легко работают с буфером обмена (не глобальным) внутри потока, выделяя на это некоторую память. Почему бы разработчикам BAS этого не сделать?
Логика тут такая, если есть костыль то можно не делать/фиксить.
-
@gurkin4 said in Вопрос по буферу обмена.:
Очень многие программы легко работают с буфером обмена (не глобальным) внутри потока, выделяя на это некоторую память. Почему бы разработчикам BAS этого не сделать?
Может быть не всё так просто?
-
@Fox said in Вопрос по буферу обмена.:
Может быть не всё так просто?
Хватает багов, которые очень легко исправить, но он их не фиксит. Так что не факт
