@Blablabla8133 said in При попытке компиляции программа зависает?:
На что смотреть?
Запишите видео того, что вы делаете и как именно программа зависает
Здравствуйте, написал простой скрипт парсинга активной ссылки на сайтах на GET запросах. Выставляю более 10 потоков и программа зависает, скрипт работает, но интерфейс недоступен, проц не грузит более 13%. При 1-3 потоках работает, но этого мало.
Оборачивал, в цикл данный скрипт, думал, что на создание потока тратятся ресурсы и поэтому зависает, но нет тоже самое! И так же проверял на другой системе.
Компьютер не слабый:
Intel Core i7 4770K
16 Gb оперативки
SSD
Скрипт обрезанный, многие я вещи выкинул, что бы легче было читать и понимать.
0_1502527670342_GET_URL_ver2.xml
Файл с базой url:
0_1502528565192_urls2.txt
Файл с ссылками, которые нужно найти:
0_1502528804884_target2.txt
Оффтоп: уже давно есть программа для этого, более того она чекает ноуиндекс, роботс, ноуфоллоу...еще пара плюшек. Многопоток. 0_1502562889372_EasyBLanalizer.zip
@myweb101
Здравствуйте, падение производительности происходит из-за того, что перед каждым xpath запросом страница парсится заново. Это происходит 8 раз в каждом потоке.
Этого можно избежать используя действия парсинга из модуля http клиента. Так нагрузка на процессор станет меньше в 7/8 раз, потому что эти методы кешируют преобразование страницы в дерево элементов.
Пример:
get_url_ver3.xml
Если вы хотите сделать нагрузку еще меньше, то вы можете брать код страницы, проверять его на наличие строк bit.ly или goo.gl, и только в том случае, если они присутствуют в коде, использовать менее быстрый xpath.