Подскажите оптимальный язык для моего софта

Menro

web, seo, email, hack
Регистрация
27 Янв 2008
Сообщения
689
Реакции
138
Добрый день!
Заказал разработку программы (многопоточный чекер сайтов) у своего (так скажем) программиста.
Он делает прекрасный софт на Delphi, и до сего момента, у меня не было никаких нареканий.
Но в случае с этим софтом, мне кажется, что язык не подходящий, возможно я ошибаюсь.

Задача софта:

1. Обходить ежедневно около 2- миллионов доменов и парсить оттуда нужную мне информацию.
2. Складывать результата парсинга в базу.

Сейчас я запустил софт в 500 потоков, программист мне сказал, что Delphi не рекомендует такое количество потоков, рекомендует не более 25 потоков.
Я думаю так: чем больше потоков, тем быстрее софт должен обойти список сайтов, прав я или нет?

Когда запускаю софт в 500 потоков, он начинает великолепно работать первые минут 40, а потом скорость его работы снижается, прожорливость ресурсов несколько увеличивается...Вот я не пойму, то ли мне мучить его дальше, и пытаться доработать то, что есть, или искать другие варианты, а может вообще 25 потоков - это край для любого софта?

Может у кого-то есть работы с большими объёмами сайтов? Что лучше выбрать?
 

Twickbot

Постоялец
Регистрация
3 Июн 2017
Сообщения
33
Реакции
11
Когда запускаю софт в 500 потоков, он начинает великолепно работать первые минут 40, а потом скорость его работы снижается, прожорливость ресурсов несколько увеличивается...
Вероятная причина - софт использует всю доступную ему память. После чего начинаются зависоны и тормоза.
Варианты решения проблемы:
1. Использовать 64-битный язык программирования для того, чтобы софт мог использовать всю память.
2. После пункта первого, соответственно, озадачиться наличием нужного количества памяти на компе, где запускается программа.
3. Мониторить потребление памяти софтом и в случае, если он "съедает" всю доступную память, ограничивать количество потоков.
 

RealKludge

Где карта, Билли?
Регистрация
21 Дек 2016
Сообщения
155
Реакции
53
Парсеры лучше писать на Python, Perl или в крайнем случае на PHP. Трубо Паскакаль как-то не то.
 

Menro

web, seo, email, hack
Регистрация
27 Янв 2008
Сообщения
689
Реакции
138
Спасибо!
Действительно проблема с памятью.
Я поставил работать софт в 50 потоков, небольшой запас памяти остаётся на сервера, но при этом, скорость работы увеличилась в 2 раза.
То есть получается, что большое количество потоков не всегда ведёт к увеличению скорости работы (хотя тут я как понял многое зависит и от железа в том числе). Но сейчас я имею скорость 8 000 000/24 часа и меня это устраивает вполне.
 

ironwit

Писатель
Регистрация
6 Фев 2012
Сообщения
5
Реакции
0
Хороший хостинг и парсер в виде скрипта запускаемого кроном будет лучшим решением. БД на том же хостинге.
Для запуска ПО в сети с хорошими ресурсами обратите внимание на услуги от азур и амазон
 

savvadesogle

Создатель
Регистрация
19 Мар 2014
Сообщения
22
Реакции
6
Python. А еще лучше использовать готовые решения - на рынке есть.
 

sparsame

Постоялец
Регистрация
20 Авг 2011
Сообщения
100
Реакции
13
пусть изучает ваш программист GC и будет счастье...
 

ЮриЧиж

Писатель
Регистрация
1 Апр 2018
Сообщения
3
Реакции
0
Да нормально и Делфи с етой задачей справиться.
 

northernman

Писатель
Регистрация
7 Апр 2018
Сообщения
3
Реакции
0
Парсер на дельфи - это не то, что нужно. Лучше всего python - это родная стихия языка. В том числе и с многопоточностью проблем не будет
 

soll2307

Постоялец
Регистрация
27 Июл 2009
Сообщения
80
Реакции
9
или на плюсах, но это дороже будет
 
Сверху