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

Тема в разделе "ASM, С/С++, Delphi, Java", создана пользователем Menro, 6 сен 2017.

  1. Menro

    Menro web, seo, email, hack

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

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

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

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

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

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

    Twickbot Создатель

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

    RealKludge Постоялец

    Регистр.:
    21 дек 2016
    Сообщения:
    131
    Симпатии:
    31
    Парсеры лучше писать на Python, Perl или в крайнем случае на PHP. Трубо Паскакаль как-то не то.
     
  4. Menro

    Menro web, seo, email, hack

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

    ironwit Писатель

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

    savvadesogle Создатель

    Регистр.:
    19 мар 2014
    Сообщения:
    18
    Симпатии:
    3
    Python. А еще лучше использовать готовые решения - на рынке есть.