@selector said in Как сэкономить на ресурсах процессора? – задача запустить максимальное количество браузеров в системе:
что еще можете посоветовать
pochitat forum
@Revers Если тебе нужно именно окно "результат", то ни как. Это своеобразный лог, со своим файлом. Самый простой вариант, это сохранять отдельным файлом для каждого потока свои результаты. Они всегда будут уникальны и актуальны. А смотреть их можно через что угодно. Я например в админке смотрю на php.
@Revers Какие именно данные ты хочешь видеть и для чего они тебе нужны? Количество спарсенных ссылок или сами ссылки, чтобы с ними работать?
То есть нажимаешь в любой момент "остановить скрипт мгновенно"
Если ты останавливаешь скрипт своими руками, то данные могут не записаться.
Я вообще сохранял данные в [[THREAD_INDEX]].txt, где THREAD_INDEX это номер потока. Каждый поток работал со своим файлом, а в админке я выводил уже все файлы вместе. Дублей при таком подходе не будет.
@Fox К примеру за день в "Результаты" набралось 6 лямов ссылок, иду в KeyWordKeeper и остаётся только 300к. А если я раз в неделю буду проверть на дубли то KeyWordKeeper не потянет такой файл. Вот мне и нужно как-то решить проблему, чтобы не нажимая "Остановить", в окне "Результаты" или в файле links.txt были только уник строки.
@Revers Во сколько потоков работает скрипт? Можно по разному сделать, в зависимости от условий работы скрипта. Например отдельной функцией читать файл links.txt и удалить дубликаты. Либо перед добавлением в файл проверить, есть ли такая ссылка в файле, если нет, то добавить. С большими объёмами данных лучше работать в базе.
Если эти ссылки будет потом использовать другой скрипт, можно его настроить использовать эту же базу и работать сразу, одновременно.
@Revers замените результат на ресурс, с галочкой только запись. Добавьте раз в определенное время очистку дублей, например, в скрипте можно получить количество успехов на данный момент, сделать в скрипте условие if, если количество успехов кратно 100 (переменная с количеством успехов % 100 == 0), то получать расположение ресурса, куда пишем результаты, читать файл в список, удалить дубли, записать список в файл с перезаписью (в экшене записи в файл не ставить галочку дописывать файл). Так же что бы не нагружать оперативку при добавлении результата в ресурс ставим галочки только добавить в файл/базу, а для того что бы результаты добавлялись в лайве, ставим галочку добавить в файл/базу мгновенно
@Revers с вашим объемом данных это будет ресурсоемко - нужно будет прочитать файл в список и проверить существование строки в списке.
П.с. небольшое примечание к моему способу выше - после того, как перезапишите файл, очистите переменную, в которую вы читали файл, это можно сделать действием установить переменную, например в значение 0, или выполнить код delete VAR_имя_переменной