У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
проверить по url корневой адрес
-
хочу проверять тот самый ли сайт открылся или же нет.
можно конечно сделать по элементу, но по имени сайта правильнее.
пример:
current_url: https://сайт1.ru
current_url2: https://сайт1.ru/rfggerge342r/ertfgerg453ge/dsfg4erw
сайт один и тот же, но из-за того что current_url2 имеет продолжение они не могут быть одинаковыми при сравнении в действии if. -
@playful Результат этого выражения будет не булевый. Это функция условия которй говорят что если Host = Host1
то скрипт зайдет в нее и будет выполнять то что написанно там. Вы бы объявили переменную какую булевую которая и будет принимать true или false
типа такогоif(current_url == current_url2.split('/')[2]) { var check = true; } else { var check = false; } -
спасибо... не уточните ли еще как это работает?
цифра 2(значение) получается является обозначалкой для массива, который разделен от продолжения строки знаком "/" .... в данном примере получается за место цифры можно поставить любое число главное чтоб для current_url2 было точно тоже самое значение(число)... если это так, то почему значение должно быть таким же и в current_url2, ведь массив один что в current_url что и в current_url2. -
@playful В урл при разделении слешем 2 элемент (на самом деле третий, но второй от 0) это и есть корневой адрес. Всегда и не важно http это https и есть ли www это наблюдение такое). Если у вас редирект куда то не туда то они не совпадут. А индекс элементов вы конечно можете менять как вам будет угодно. Главное это сам метод как уже указывал.
upd При желании можно разделять первый урл и сверять есть ли он во втором. Принцип тот же, но indexOf метод медленнее чем split(). Но можно и так. Т.е берем первую урл разделяем ее. И смотрим во второй есть ли она.var check = first_url.split('/')[2] if(first_url1.indexOf(check)>-1) { //ваши действия Но скорость этй функции будет соспостовима регулярке. }
