У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Время выполнения простенького скрипта
-
Друзья, добрый день, есть простенький скрипт - берет значение каждого элемента из списка 1 и, используя "Удалить по значению" удаляет его из списка 2. Затем записывает обновленный список2 в файл (Записать список в файл)
Все работало прекрасно со списками 20-200 тыс. имен, пока вчера вечером мне не попались большие файлы, список1 примерно 500 тыс имен, список2 примерно 1500 тыс имен.
Если я запускал скрипт в обычном режиме - БАС сразу зависал ("не отвечает" в диспетчере задач, хотя загрузка процессора и памяти постоянно менялись), запустил в режиме записи, работает уже больше 8 часов
Что делать ума не приложу, дождаться или как? -
@Novichok Большой цикл вызывает подвисание интерфейса, рано или поздно этот цикл завершится и скрипт выполнит свою работу.
Просто сам по себе BAS не предназначен для работы с большими файлами. Напишите функцию в "выполнить код" и работа со списком в 500к строк выполнится за секунды. -
@Novichok Значит ждите
:D.А просто два действия Читать файл в список и сразу следом Записать список в файл сколько займут времени с этим файлом в режиме запуска? Просто прочитать в переменную и тут же записать эту переменную в другой файл.


