Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Разместите свой проект бесплатно и начните получать предложения от фрилансеров-исполнителей уже спустя минуты после публикации!

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


Приложения 2

Просмотр приложений доступен только зарегистрированным пользователям.
Заказчик не желает делать предоплату? Оплата через Сейф поможет избежать возможного мошенничества.
  1. 574
     4  0

    14 дней5000 UAH

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

  2. 17  
    1 день1000 UAH

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

  3. 84    1  0   1
    5 дней3000 UAH

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

  4. 548    70  13   2
    3 дня1500 UAH

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

  5. 1321    62  2   1
    5 дней3000 UAH

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

  6. Еще 3 ставки скрыты
  • Профиль удален
    2 августа 2019, 20:12 |

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

  • Вячеслав Азаров
    3 августа 2019, 7:29 |

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

  • Ігор Лозовський
    3 августа 2019, 8:46 |

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

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

Актуальные фриланс-проекты в категории Десктопные приложения

Небольшая правка на сайте

700 UAH

Нужно переподвизать договор оферты в футтере на новый , в компании поменялся регламент Задача на 20 минут

Веб-программированиеДесктопные приложения ∙ 11 часов 20 минут назад ∙ 94 ставки

Инструмент сверки счетов с банком, картами и бухгалтером

Техническое задание: инструмент сверки счетов с банком, картами и бухгалтеромОбщая цель Нужен локальный инструмент (скрипт/небольшое приложение на Python), который запускается вручную раз в 1-2 месяца на моём компьютере и делает сверку между: Счетами, которые я выставил клиентам…

PythonДесктопные приложения ∙ 2 дня 18 часов назад ∙ 42 ставки

Добавить паузы 10-30 секунд между отправками писем

Здравствуйте! Ищу опытного программиста 1С / BAS (BAF) для оперативного решения технической проблемы с почтовой рассылкой.Суть проблемы: Используем бухгалтерскую программу BAF (Business Automation Framework), редакция 2.0. Раз в месяц возникает необходимость массово отправлять…

Веб-программированиеДесктопные приложения ∙ 8 дней 10 часов назад ∙ 10 ставок

Реверс-инжиниринг консольных утилит для опроса контроллеров SSD (Flash ID)

1. Цель работы Выделение программного интерфейса (API) взаимодействия с контроллерами SSD/NVMe из предоставленного набора консольных утилит (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron и др.). Результатом должно стать рабочий код на языке C/C++ или точная…

C и C++Десктопные приложения ∙ 8 дней 21 час назад ∙ 6 ставок

Заказчик
Проект опубликован
6 лет назад
206 просмотров