Какой язык программирования наиболее эффективен для парсинга сайтов

Мы решили провести этот маленький тест, чтобы определить какой из популярных языков программирования наиболее эффективен по скорости, использованию CPU и RAM для парсинга сайтов. Для максимальной объективности, мы попытались написать все скрипты в одном ключе, и запускали их в режиме однопоточности. Каждый парсер работал 10 минут на одинаковой машине, практически в одно и то же время. Характеристики используемого стенда: Linux Ubuntu 14.04 (под Virtual Box), 1 CPU Core, 4Gb RAM.

Мы сравнили следующие языки программирования: Golang (используя платформу Diggernaut), Perl, PHP5, Python 2.7, Python + Scrapy, Ruby. Как источник мы использовали сайт Департамента здоровья США.

Посмотрим на график по скорости работы:

Мы видим, что у нас есть три лидера: Golang забрал почти 3 тысячи страниц, Ruby — примерно 2.5 тысячи, а Python + Scrapy — около 1.5 тысяч. Другие языки на их фоне выглядят действительно медленными.

Однако, если мы посмотрим на график использования CPU, мы увидим немного другую картину:

Первое место здесь уходит к PHP5, использующему только лишь 2.5% CPU, за ним идет Golang с 3.5% и третьим замыкает гонку Perl приблизительно с 4%. Другие языки отстают совсем не намного, за исключением Python + Scrapy — 11% это слегка много, мы думаем.

И последний испытываемый параметр — использование RAM:

Победителем в этом измерении является Golang с 26Mb, за ним идет Perl с 29Mb, и замыкает тройку PHP5 с 39Mb. Ruby здесь показал себя полным аутсайдером со 154Mb.

Чтобы обобщить все тесты, мы оценим каждое испытание по 100-бальной системе (лучший результат получит 100 баллов, худший 0, остальные соответственно своим результатам) и затем возьмем среднее арифметическое по всем 3 испытаниям.

Golang является чистым победителем в этом испытании. Именно поэтому он был выбран в качестве бакэнда для платформы Diggernaut.

Для того, чтобы не быть голословными, мы прикрепляем использованные в этом тесте скраперы: scripts

Михаил Сисин: Со-основатель облачного сервиса по сбору информации и парсингу сайтов Diggernaut. Работает в области сбора и анализа данных, а также разработки систем искусственного интеллекта и машинного обучения  более десяти лет.
Related Post

This website uses cookies.