|
|
|
Подскажите реализацию
|
|||
|---|---|---|---|
|
#18+
задача такова. Есть основное приложение, и есть надобность через определенные моменты времени подгружать модули, которые будут делать свое дело, передавать проге результат и сворачивать свою деятельность. В силу того, что процесс цикличен, то, в конечном итоге, программа раздувается до немоготы в плане ОЗУ. Даже не смотря на освобождение памяти. Бросил свой взор на то, что бы создать пустое приложение, которое будет запускать dll, ждать окончания работы dll и закрываться. Но тут стал вопрос о передаче результата. То есть, проблем нет, есть и текстовые файлы, и датасеты и локальные БД. Просто хотел узнать, как лучше такое сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 00:13 |
|
||
|
Подскажите реализацию
|
|||
|---|---|---|---|
|
#18+
therВ силу того, что процесс цикличен, то, в конечном итоге, программа раздувается до немоготы в плане ОЗУ. Цикличность не является причиной раздувания "в плане ОЗУ". Что именно съедает память? Почему ее нельзя чистить перед последующим циклом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 01:45 |
|
||
|
Подскажите реализацию
|
|||
|---|---|---|---|
|
#18+
ситуевина такая, в плагинах лежит браузер, который время от времени заполняет формы. В силу того, что браузер не может работать без формы, то там еще и форма. в конце каждой операции я освобождал память браузера и формы. Но память все равно растет. И в силу того, что браузер в делфи не является эталоном, то он и жрет память. Вот и решил просто создавать процесс, который будет подгружать dll, и выходить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 01:50 |
|
||
|
Подскажите реализацию
|
|||
|---|---|---|---|
|
#18+
в любом случае нужно еще одно приложение, так как не будет подвисать основное приложение пока браузер грузится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 01:53 |
|
||
|
Подскажите реализацию
|
|||
|---|---|---|---|
|
#18+
therв любом случае нужно еще одно приложение, так как не будет подвисать основное приложение пока браузер грузится.Вариант загрузки "браузера" в отдельном потоке даже не рассматривался??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 02:05 |
|
||
|
Подскажите реализацию
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov на сколько я знаю, он все равно будет выполнятся в основном потоке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 02:27 |
|
||
|
Подскажите реализацию
|
|||
|---|---|---|---|
|
#18+
therзадача такова. Есть основное приложение, и есть надобность через определенные моменты времени подгружать модули, которые будут делать свое дело, передавать проге результат и сворачивать свою деятельность.Тут вариантов только два: 1) Загрузил модуль, дал ему отработать, выгрузил модуль. 2) Загрузил модуль при старте, усыпил модуль. Понадобилась нужда - дал модулю данные, дождался пока он закончит, усыпил модуль. В первом варианте, тратишь время на загрузку и выгрузку модуля, во втором тратишь память на статические данные модуля. В обоих случаях если модуль написан правильно - утечки не будет. Если "программа раздувается до немоготы в плане ОЗУ" значит есть утечка памяти и надо чинить. therБросил свой взор на то, что бы создать пустое приложение, которое будет запускать dll, ждать окончания работы dll и закрываться. Но тут стал вопрос о передаче результата. То есть, проблем нет, есть и текстовые файлы, и датасеты и локальные БД. Просто хотел узнать, как лучше такое сделать?Это вариант номер один. Только загрузка-выгрузка переложена на ОС. Вполне работоспособный вариант, хоть и самый затратный по старт-стопу. Только в этой схеме dll лишняя. Достаточно сделать обычное приложение которое будет получать файл с исходными данными (или читать из пайпа, или из общей памяти, или...) и возвращать результат таким-же образом. Посмотри на sh в *никсах - именно этот подход. Множество мелких исполняемых файлов заточенных на микро-действие. В сумме все что угодно любой сложности. therситуевина такая, в плагинах лежит браузер, который время от времени заполняет формы. В силу того, что браузер не может работать без формы, то там еще и форма. в конце каждой операции я освобождал память браузера и формы. Но память все равно растет. И в силу того, что браузер в делфи не является эталоном, то он и жрет память. Если тебе надо "заполнять веб-формы", то нафига тебе браузер? Просто формируешь POST посылку и отправляешь ее в 80-ый порт нужного сайта. Просто и легко. therВот и решил просто создавать процесс, который будет подгружать dll, и выходить.Бессмысленно. Dll принадлежит процессу. Если процесс вышел - dll тоже "вышла". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2014, 02:32 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1341323]: |
0ms |
get settings: |
7ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
150ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 474ms |

| 0 / 0 |
