У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Спать, или не спать? Вопрос по оптимизации.
-
Добрый день, друзья.
Читал небольшую страничку об оптимизации скрипта (https://wiki.bablosoft.com/doku.php?id=ru:how_to_optimize_script), заинтересовала данная строка больше всего: "Никогда не использовать функцию «Спать», только функции ожидания." и назрела у меня надобность разобраться.
Структура кода такая, что в цикле каждые 40-55 секунд последовательно вызывается несколько функций (3) на проверку происходящего на странице, не появились ли pop-up окошки, не сменились ли css элементы? Порядок вызова функций строгий.
Вопрос: в плане производительности, стоит ли убирать действие "спать" в цикле и обертывать функции в действие ждать текст / ждать css? И если да, то как в таком случае последовательно вызывать эти события? Через действие асинхронного вызова функции?Сейчас всё работает, но хороший сервер выдерживает мой скрипт только в ~35 потоков, хотелось бы повысить количество активных потоков. И ещё, может быть есть дополнительные советы по оптимизации, помимо указанной выше ссылки?
Заранее, спасибо большое!
-
@orangie said in Спать, или не спать? Вопрос по оптимизации.:
Вопрос: в плане производительности, стоит ли убирать действие "спать" в цикле и обертывать функции в действие ждать текст / ждать css? И если да, то как в таком случае последовательно вызывать эти события? Через действие асинхронного вызова функции?
Действие "Спать" не нагружает пк, но чаще всего это действие используют новички для стационарного ожидания, то есть к примеру после каждого клика ждут по 5-10 секунд, что сильно сказывается на общем времени выполнения логики скрипта. Действие "Спать" можно продуктивно использовать в цикле ожидания или проверке, также нужно добавлять в очень большие или бесконечные циклы, что бы не зависал интерфейс BAS
-
@Fox said in Спать, или не спать? Вопрос по оптимизации.:
@orangie said in Спать, или не спать? Вопрос по оптимизации.:
Вопрос: в плане производительности, стоит ли убирать действие "спать" в цикле и обертывать функции в действие ждать текст / ждать css? И если да, то как в таком случае последовательно вызывать эти события? Через действие асинхронного вызова функции?
Действие "Спать" не нагружает пк, но чаще всего это действие используют новички для стационарного ожидания, то есть к примеру после каждого клика ждут по 5-10 секунд, что сильно сказывается на общем времени выполнения логики скрипта. Действие "Спать" можно продуктивно использовать в цикле ожидания или проверке, также нужно добавлять в очень большие или бесконечные циклы, что бы не зависал интерфейс BAS
Благодарю за развернутый ответ!
@gurkin4 said in Спать, или не спать? Вопрос по оптимизации.:
@orangie Не проще просто проверять pop-up на наличие? Если нет, то вернуться к его проверке, иначе продолжить скрипт.
С этой логикой вовсе не будет лишних затрат времени.В принципе, я так и делаю, возможно не совсем развернуто написал, спасибо