Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Утечка памяти при использовании DLL, как избежить этого 
:(
    Опции темы
SerK
Дата 9.4.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Может кто наблюдал подобную картину с использованим DLL.
При обращении к DLL память приложения увеличивается, а при закрытии
приложения не уменьшается, почему? Ведь так можно дойти до зависания комьютера.
Кстати, после обращения к DLL, она закрывается, значит и память должна очищаться.

Это сообщение отредактировал(а) SerK - 9.4.2008, 17:57


--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
xvr
Дата 10.4.2008, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(SerK @  9.4.2008,  17:53 Найти цитируемый пост)
Может кто наблюдал подобную картину с использованим DLL.
При обращении к DLL память приложения увеличивается, а при закрытии
приложения не уменьшается, почему?
При закрытии приложения вся его память уничтожается, может имелось в виду закрытие (выгрузка) dll?

Цитата(SerK @  9.4.2008,  17:53 Найти цитируемый пост)
Кстати, после обращения к DLL, она закрывается, значит и память должна очищаться.
Память будет автоматически отдаваться ТОЛЬКО после завершения приложения, выгрузки dll еще недостаточно  smile Если остается невозвращенная память, значит либо вы забыли освободить что то, что заказала dll, либо dll с ошибкой.


PM MAIL   Вверх
SerK
Дата 11.4.2008, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



xvr

Речь идет не о закрытии приложения, а именно  DLL.
По логике вещей, когда мы обратились к DLL загрузка памяти увеличивается, 
а когда мы закрываем DLL, память должна возвращаться к исходному значению.
Но этого не происходит, с каждым обращением к DLL память приложения растет и
растет.
При использовани ресурсов этого не происходит.
Это что не доработка Борланда, стоит ли использовать DLL.
Конечно, стоит, но в тех случая, когда не приходится часто обращаться DLL.
Может я не прав?


--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
xvr
Дата 11.4.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Цитата(SerK @ 11.4.2008,  13:13)
xvr

Речь идет не о закрытии приложения, а именно  DLL.
По логике вещей, когда мы обратились к DLL загрузка памяти увеличивается, 
а когда мы закрываем DLL, память должна возвращаться к исходному значению.

Что такое 'закрытие DLL'? FreeLibrary? Память, занятая под саму dll будет освобождена, вся динамическая память, занятая в процессе работы DLL - нет, да и не должна.
Цитата

Но этого не происходит, с каждым обращением к DLL память приложения растет и
растет.
Бага в DLL или ее использовании
Цитата

При использовани ресурсов этого не происходит.
Ресурсы не грузятся в динамическую память и не используют ее
Цитата

Это что не доработка Борланда, стоит ли использовать DLL.
Конечно, стоит, но в тех случая, когда не приходится часто обращаться DLL.
Может я не прав?
Не прав - прежде чем искать баги в Borland'е (или любом другом компиляторе) стоит их поискать поближе, например у себя в программе  smile 
PM MAIL   Вверх
Vyacheslav
Дата 15.4.2008, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Цитата(SerK @  9.4.2008,  17:53 Найти цитируемый пост)
При обращении к DLL память приложения увеличивается, а при закрытии
приложения не уменьшается, почему? 

А как Вы это определяли. Если по Task Manager - то это еще не факт



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0651 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.