Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Post your project for free and start receiving proposals from freelancers within minutes after publication!

Исправить программу на Delphi


Applications 2

Application viewing is only available registered users.
Client does not wish to make a prepayment? Payment through Safe helps avoid potential fraud.
  1. 574
     4  0

    14 days111 USD

    "Если же увеличить, например, до 5120, то через некоторое время перестает работать (на веб запросы к ней отвечает, но запросы в БД не выполняет). И появляется ошибка о недостатке памяти. Но я никогда не видел, чтобы программа использовала больше 200 мб памяти. После перезапуска опять работает некоторое время, после чего история повторяется."
    Видите, у вас ошибка "Thread creation error"? При создании потока выделяется память как в UserMode, так и в ядре системы. И вот эта память в ядре системы с особыми свойствами, в частности, она не может быть вытеснена на диск, в файл подкачки. Она обязательно всегда должна находиться в реальной оперативной памяти. И её не очень много. Грубо говоря, вы создаёте слишком много потоков.
    Но думаю, что причина ещё несколько глубже. Из этого множества потоков вы одновременно создаёте слишком много файлов. Насколько я представляю себе работу драйверов файловой системы Винды, они для такого просто не предназначены. Нет, она не падает, но работать начинает очень неэффективно, расходуя тот самый драгоценный пул памяти в ядре, который нельзя свопировать на диск.
    Я бы посоветовал перепроектировать программу в этом месте. Есть менее ресурсоёмкие решения.
    ----------------
    Мне тут подсказывают, что я ошибся и, похоже, это так и есть. Я не обратил внимание на то, что процесс у вас 32битный. Обычно по умолчанию размер стека резервируемого для вновь создаваемого потока равен 1Мб. И 5120 новых потоков просто исчерпают всё адресное пространство 32 своими стеками.

  2. 17  
    1 day22 USD

    На посмотреть розобраться цена такая.
    Смотрим исходники и какие компоненты используються.
    Тогда можно о чемто говорить.
    А так с того что есть сразу скажу тупиковый подход. Нужно менять логику, на всех пользователей ядер не хватит некогда.

  3. 84    1  0   1
    5 days67 USD

    Важный вопрос: программа раньше работала стабильно или начала сбоить начиная с какого-то времени?
    А то при отсутствии ограничения на максимальное количество соединений и при наличии дудосеров, ваш сервер можно легко положить.

  4. 548    70  13   2
    3 days33 USD

    Готов заняться Вашей задачей. Проблема с нехваткой памяти и с таймаутом для запросов понятны - но надо понимать, что безграничных ресурсов всё равно не возникнет. Ещё желательно знать версию используемого Вами SQL-сервера. Подробнее могу сказать после того, как посмотрю исходники.

  5. 1321    62  2   1
    5 days67 USD

    Здравствуйте,
    насколько я понял, какие-то запросы вызывают задержку/нехватку памяти - программа перестаёт работать. Если есть доступ к базе и можно получить текст запроса, смогу переписать.

  6. Another 3 proposals concealed
  • Profile deleted
    2 August 2019, 20:12 |

    Подозреваю что можно решить - уменьшив размер стека (и перекомпилировав)

  • Vyacheslav Azarov
    3 August 2019, 7:29 |

    При таком количестве (5120) одновременных запросов к РБД вам понадобится машина баз данных (например от Оракл) или услуги провайдеров облачных технологий c репликацией РБД, а не персональный компьютер с MySQL.

  • Ihor Lozovsky
    3 August 2019, 8:46 |

    "Даже самые сложные задачи могут иметь простое решение"

    И всё-таки есть решение за счёт изменения архитектуры. 🙂

Current freelance projects in the category Desktop Apps

Small edit on the website

16 USD

Need to update the offer agreement in the footer to a new one, the company has changed its regulations Task will take 20 minutes

Web ProgrammingDesktop Apps ∙ 15 hours 40 minutes back ∙ 94 proposals

Account reconciliation tool with the bank, cards, and accountant

Technical Assignment: Tool for Reconciling Accounts with Bank, Cards, and AccountantGeneral Goal A local tool (script/small application in Python) is needed, which is manually run once every 1-2 months on my computer and performs reconciliation between: Invoices I issued to…

PythonDesktop Apps ∙ 2 days 22 hours back ∙ 42 proposals

Add pauses of 10-30 seconds between sending emails.

Hello! I am looking for an experienced 1C / BAS (BAF) programmer to promptly resolve a technical issue with email distribution.Problem essence: We use the accounting program BAF (Business Automation Framework), version 2.0. Once a month, there is a need to send about 300 emails…

Web ProgrammingDesktop Apps ∙ 8 days 14 hours back ∙ 10 proposals

Reverse engineering of console utilities for querying SSD controllers (Flash ID)

1. Purpose of the work Extraction of the application programming interface (API) for interaction with SSD/NVMe controllers from the provided set of console utilities (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron, etc.). The result should be working code in C/C++…

C & C++Desktop Apps ∙ 9 days 2 hours back ∙ 6 proposals

Client
Dmitry Balabko
Canada Montreal
Project published
6 years back
206 views