Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Вниз

Утечка памяти при загрузке DLL   Найти похожие ветки 

 
bjohny   (2004-08-26 13:26) [0]

Привет. Проблема в следующем.
Создаю пустую DLL, определяю и экспортирую пустую процедуру.
В проекте DLL загружается динамически. Послу загрузки сразу же выгружаю.
LoadLibrary(...);
FreeLibrary(...);
MemProof говорит что утечки нет, но Task Manager показывает утечку.Если запустить в цикле загрузку/выгрузку на несколько часов, то кушается вся память.
Подскажите почему растет память????


 
DVM ©   (2004-08-26 13:35) [1]


> но Task Manager показывает утечку

Не верь таскменеджеру. Верь MemProofу. Еще можно ProcessExplorer-у.


 
bjohny   (2004-08-26 13:39) [2]

Я бы ему не верил, если бы винда не говорила что You virtual memory is LOW


 
DVM ©   (2004-08-26 13:46) [3]


> если бы винда не говорила что You virtual memory is LOW

код давай...


 
bjohny   (2004-08-26 14:02) [4]

Dll:
library Test;

uses
 SysUtils,
 Forms,
 Classes;

{$R *.res}
procedure tt;
begin
//
end;

exports
tt;
begin
end.


Проект:
// Timer.Interval:=10;
procedure TForm1.Timer1Timer(Sender: TObject);
var DllH:HWND;
begin
 DllH:=LoadLibrary("Test");
 FreeLibrary(DllH);
 Application.ProcessMessages;
end;


 
DVM ©   (2004-08-26 14:20) [5]

А если убрать
uses
SysUtils,
Forms,
Classes;
ситуация не меняется?


 
bjohny   (2004-08-26 14:38) [6]

Если оставить  SysUtils, то все нормально, а вот если  Classes или Forms то ... утечка...


 
VMcL ©   (2004-08-26 14:38) [7]

>Application.ProcessMessages;

Убрать.


 
bjohny   (2004-08-26 14:41) [8]

Ну и что.... убрал все равно...


 
DVM ©   (2004-08-26 14:52) [9]


> а вот если  Classes или Forms то ... утечка...

Ну вот и ответ. Там искать надо.


 
clickmaker ©   (2004-08-26 14:54) [10]


> [8] bjohny   (26.08.04 14:41)

а если без таймера, просто в бесконечном цикле?


 
bjohny   (2004-08-26 15:05) [11]

В бесконечном цикле такая же беда.


 
Игорь Шевченко ©   (2004-08-26 15:46) [12]

А зачем грузить такую DLL ?

При инициализации forms очень много действий производится...


 
bjohny   (2004-08-26 15:49) [13]

НУ хорошо, эт в общем.
Возьмем OLE, там тоже дует будь здоров.
Меня интересует как от этого избавиться, пусть хоть мильон действий производится.


 
Игорь Шевченко ©   (2004-08-26 17:59) [14]


> Меня интересует как от этого избавиться


Сказали уже - убрать Forms.


 
bjohny   (2004-08-27 09:46) [15]

Реально DLL использует WMIScripting, который в свою очередь использует OLE. Память течет по страшному. Убрать WMI??? Это не выход...


 
Digitman ©   (2004-08-27 10:18) [16]


> bjohny   (27.08.04 09:46) [15]


> Реально DLL использует WMIScripting, который в свою очередь
> использует OLE


вот и приводи РЕАЛЬНЫЙ код, а не абстрактный пример


 
bjohny   (2004-08-27 10:30) [17]

Суть то остается одной...


 
Digitman ©   (2004-08-27 10:42) [18]


> bjohny   (27.08.04 10:30) [17]
> Суть то остается одной...


да, суть остается одной - не верю чтобы "пустая" ДЛЛ вызывала проблемы с утечками памяти


 
bjohny   (2004-08-27 10:59) [19]

ну так глянь


 
Digitman ©   (2004-08-27 11:37) [20]


> bjohny   (27.08.04 10:59) [19]


> ну так глянь


даже и глядеть нечего



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.036 c
14-1095175588
Отечественный программист
2004-09-14 19:26
2004.10.03
АСКОН


3-1094532530
Some
2004-09-07 08:48
2004.10.03
Какой event вызывается при перемещении по DBGrid, поправте


1-1095316993
Чайник
2004-09-16 10:43
2004.10.03
Перелив цветов


3-1094452595
Fantom
2004-09-06 10:36
2004.10.03
Вопрос по тригерам


4-1093435027
FreeMan1
2004-08-25 15:57
2004.10.03
LowLevelKeyboardProc





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский