powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите реализацию
7 сообщений из 7, страница 1 из 1
Подскажите реализацию
    #38671082
ther
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
задача такова. Есть основное приложение, и есть надобность через определенные моменты времени подгружать модули, которые будут делать свое дело, передавать проге результат и сворачивать свою деятельность. В силу того, что процесс цикличен, то, в конечном итоге, программа раздувается до немоготы в плане ОЗУ. Даже не смотря на освобождение памяти.
Бросил свой взор на то, что бы создать пустое приложение, которое будет запускать dll, ждать окончания работы dll и закрываться. Но тут стал вопрос о передаче результата. То есть, проблем нет, есть и текстовые файлы, и датасеты и локальные БД.
Просто хотел узнать, как лучше такое сделать?
...
Рейтинг: 0 / 0
Подскажите реализацию
    #38671114
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
therВ силу того, что процесс цикличен, то, в конечном итоге, программа раздувается до немоготы в плане ОЗУ.
Цикличность не является причиной раздувания "в плане ОЗУ".
Что именно съедает память? Почему ее нельзя чистить перед последующим циклом?
...
Рейтинг: 0 / 0
Подскажите реализацию
    #38671117
ther
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ситуевина такая, в плагинах лежит браузер, который время от времени заполняет формы. В силу того, что браузер не может работать без формы, то там еще и форма.
в конце каждой операции я освобождал память браузера и формы. Но память все равно растет. И в силу того, что браузер в делфи не является эталоном, то он и жрет память. Вот и решил просто создавать процесс, который будет подгружать dll, и выходить.
...
Рейтинг: 0 / 0
Подскажите реализацию
    #38671118
ther
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в любом случае нужно еще одно приложение, так как не будет подвисать основное приложение пока браузер грузится.
...
Рейтинг: 0 / 0
Подскажите реализацию
    #38671119
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
therв любом случае нужно еще одно приложение, так как не будет подвисать основное приложение пока браузер грузится.Вариант загрузки "браузера" в отдельном потоке даже не рассматривался???
...
Рейтинг: 0 / 0
Подскажите реализацию
    #38671122
ther
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
на сколько я знаю, он все равно будет выполнятся в основном потоке.
...
Рейтинг: 0 / 0
Подскажите реализацию
    #38671124
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
therзадача такова. Есть основное приложение, и есть надобность через определенные моменты времени подгружать модули, которые будут делать свое дело, передавать проге результат и сворачивать свою деятельность.Тут вариантов только два:
1) Загрузил модуль, дал ему отработать, выгрузил модуль.
2) Загрузил модуль при старте, усыпил модуль. Понадобилась нужда - дал модулю данные, дождался пока он закончит, усыпил модуль.
В первом варианте, тратишь время на загрузку и выгрузку модуля, во втором тратишь память на статические данные модуля.
В обоих случаях если модуль написан правильно - утечки не будет. Если "программа раздувается до немоготы в плане ОЗУ" значит есть утечка памяти и надо чинить.

therБросил свой взор на то, что бы создать пустое приложение, которое будет запускать dll, ждать окончания работы dll и закрываться. Но тут стал вопрос о передаче результата. То есть, проблем нет, есть и текстовые файлы, и датасеты и локальные БД.
Просто хотел узнать, как лучше такое сделать?Это вариант номер один. Только загрузка-выгрузка переложена на ОС. Вполне работоспособный вариант, хоть и самый затратный по старт-стопу. Только в этой схеме dll лишняя. Достаточно сделать обычное приложение которое будет получать файл с исходными данными (или читать из пайпа, или из общей памяти, или...) и возвращать результат таким-же образом.
Посмотри на sh в *никсах - именно этот подход. Множество мелких исполняемых файлов заточенных на микро-действие. В сумме все что угодно любой сложности.


therситуевина такая, в плагинах лежит браузер, который время от времени заполняет формы. В силу того, что браузер не может работать без формы, то там еще и форма.
в конце каждой операции я освобождал память браузера и формы. Но память все равно растет. И в силу того, что браузер в делфи не является эталоном, то он и жрет память.
Если тебе надо "заполнять веб-формы", то нафига тебе браузер? Просто формируешь POST посылку и отправляешь ее в 80-ый порт нужного сайта. Просто и легко.


therВот и решил просто создавать процесс, который будет подгружать dll, и выходить.Бессмысленно. Dll принадлежит процессу. Если процесс вышел - dll тоже "вышла".
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите реализацию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]